Ich habe zwei Punkte:Richtung zwischen zwei 3D-Vektoren mit Three.js?
v1 = (0, 0, 0);
v2 = (10, 4, -3);
Ich mag die Richtung zwischen diesen beiden Punkten bekommen, damit ich kann Raycast von Punkt v1 auf v2.
Wie mache ich das?
Ich habe zwei Punkte:Richtung zwischen zwei 3D-Vektoren mit Three.js?
v1 = (0, 0, 0);
v2 = (10, 4, -3);
Ich mag die Richtung zwischen diesen beiden Punkten bekommen, damit ich kann Raycast von Punkt v1 auf v2.
Wie mache ich das?
Das Muster zu folgen, einen Richtungsvektor von v1
v2
zu schaffen, ist dies:
var dir = new THREE.Vector3(); // create once an reuse it
...
dir.subVectors(v2, v1).normalize();
Richtungsvektoren in Three.js Einheit-Länge haben, angenommen. Mit anderen Worten, sie müssen normalisiert werden. Wenn der Richtungsvektor, den Sie beim Raycasting verwenden, nicht die Länge 1 aufweist, erhalten Sie keine genauen Ergebnisse.
three.js r.82
Ein wenig Mathematik: direction = v2 - v1
Plus, ein wenig ThreeJS der Dokumentation: https://threejs.org/docs/index.html?q=vec#Reference/Math/Vector3
Aannd ... Paf! Lösung!
var direction = new THREE.Vector3();
direction.subVectors(v2, v1) ;
Aha! So einfach ist das. Danke, ich werde es versuchen. – arpo
Ja das ist richtig. Vielen Dank! – arpo