2014-12-15 18 views

risposta

6

è possibile incrementare un vettore diverso da zero-lenth in Three.js per lunghezza len in questo modo:

var oldLength = vector.length(); 

if (oldLength !== 0) { 

    vector.multiplyScalar(1 + (len/oldLength)); 

} 

Quindi, ecco come si calcola il punto C.

var A = new THREE.Vector3(10, 20, 30); 
var B = new THREE.Vector3(20, 30, 40); 
var C = new THREE.Vector3(); 

var len = 10; 

C.subVectors(B, A).multiplyScalar(1 + (len/C.length())).add(A); 

Three.js r.69

+0

ho sperimentato con la lunghezza(), ma non mi rendevo conto di quanto per usarlo. Thx – Martin

+1

nella tua risposta Non vedo le coordinate A e B. Cos'è il "vettore"? – BaptisteB

+0

@AphexHenry Buon punto. Ho risposto alla domanda nel titolo. Il corpo del post fa una domanda diversa. – WestLangley

1

In un contesto di due dimensionale, questo vi darà le coordinate di C:

var oldLength = A.distanceTo(B); 
var newLength = oldLength + 100; 

if(oldLength > 0) 
{ 
    C.x = A.x + (B.x - A.x) * newLength/oldLength; 
    C.y = A.y + (B.y - A.y) * newLength/oldLength; 
} 
Problemi correlati