2014-12-15 9 views

Antwort

6

Sie können len wie so durch Länge einen nicht-Null-lenth Vektor in three.js erhöhen:

var oldLength = vector.length(); 

if (oldLength !== 0) { 

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

} 

hier ist also, wie Sie den Punkt C berechnen.

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

ich mit Länge experimentiert(), aber ich wusste nicht, wie um es zu benutzen. Thx – Martin

+1

In Ihrer Antwort sehe ich die A- und B-Koordinaten nicht. Was ist "Vektor"? – BaptisteB

+0

@AphexHenry Guter Punkt. Ich habe die Frage im Titel beantwortet. Der Text des Beitrags stellt eine andere Frage. – WestLangley

1

In einem zwei dimentional Zusammenhang dies wird Ihnen die Koordinaten von 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; 
}