我正在尝试旋转行星表面上的箭头以面向它行进的方向。我可以从表面法线获得方向向量和向上向量。我怎样才能将其变成四元数以便我的箭头旋转。我正在使用three.js,所以他们提供的任何建议方法都可以使用。欢呼声。
到目前为止我所掌握的信息。
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 );
答案 0 :(得分:2)
尝试(使用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);