2014-12-15 11 views

Odpowiedz

6

Można zwiększyć wektor niezerowej dłogość w three.js o długości len tak:

var oldLength = vector.length(); 

if (oldLength !== 0) { 

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

} 

Tak, o to, jak obliczyć punkt 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

eksperymentowałem z długości(), ale nie zdawałem sobie sprawy, jak używać tego. Thx – Martin

+1

w Twojej odpowiedzi Nie widzę współrzędnych A i B. Czym jest "wektor"? – BaptisteB

+0

@AphexHenry Dobry punkt. Odpowiedziałem na pytanie w tytule. Treść postu zadaje inne pytanie. – WestLangley

1

W dwóch Dimentional kontekście, to daje współrzędne 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; 
}