三维旋转的方向向量(three.js)

5

我试图旋转行星表面上的箭头,使其面向行进方向。我可以从表面法线获得方向向量和上向量。我该如何将它们转换成四元数来实现箭头的旋转?我正在使用three.js,如果有任何他们提供的建议方法可以使用就非常有帮助了。谢谢。

enter image description here

我目前所拥有的信息。

var upVector = new THREE.Vector3();
upVector.subVectors( new THREE.Vector3(0,0,0), lastVec );

var dirVector = new THREE.Vector3();
upVector.subVectors( lastVec, destVec );

var sideVector = new THREE.Vector3();
sideVector.crossVectors( dirVector, upVector );

var newUp = new THREE.Vector3();
newUp.crossVectors( dirVector, sideVector );

1个回答

11

尝试使用 myDirectionVector

var mx = new THREE.Matrix4().lookAt(myDirectionVector,new THREE.Vector3(0,0,0),new THREE.Vector3(0,1,0));
var qt = new THREE.Quaternion().setFromRotationMatrix(mx);

谢谢您的建议,这是我目前的进展,将在我的项目中进行测试 http://jsfiddle.net/wyb9jm5e/3/ - Caius Eugene
很棒,现在只需每帧更新myDirectionVector(因为现在你正在强制将其设置为常量),向量跟随就会非常明显 :) - bjorke

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接