Math 得到两个向量的旋转

Math 得到两个向量的旋转,math,matrix,3d,three.js,Math,Matrix,3d,Three.js,给定一个物体应该相对的两个向量,你如何旋转它 我尝试使用四元数,但它似乎给了我不正确的结果,如下所示 var quaternion = new THREE.Quaternion().setFromUnitVectors( (new THREE.Vector3( x1, y1, z1 )), (new THREE.Vector3( x2, y2, z2 ))); quaternion.normalize(); 任何帮助都将不胜感激 您必须记住,四元数不是度,如果您尝试放置360º,它将无法正常工

给定一个物体应该相对的两个向量,你如何旋转它

我尝试使用四元数,但它似乎给了我不正确的结果,如下所示

var quaternion = new THREE.Quaternion().setFromUnitVectors( (new THREE.Vector3( x1, y1, z1 )), (new THREE.Vector3( x2, y2, z2 )));
quaternion.normalize();
任何帮助都将不胜感激


您必须记住,四元数不是度,如果您尝试放置360º,它将无法正常工作,如果此对象不是动态的,您可以尝试使用度,如果此对象不旋转,您将看不到任何差异。。也许我没有给出我想要实现的目标的背景。左侧的纹理形状基本上是二维墙。用户将白色矩形窗口添加到墙上。程序应该将其投影到3d预览上。所以箭头当前指向的形状就是窗口。它应该平躺在墙上而不是切割墙壁。我知道这是一点额外的工作,但你能给我们一个MCVE吗@多尼苏卡迪1。从OP来看,至少我不清楚什么是输入向量,什么是期望的输出。2.不要为此使用四元数。用于对齐对象的变换矩阵要容易得多。请看这里