Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Math 四元数与三轴_Math_Computational Geometry_Quaternions - Fatal编程技术网

Math 四元数与三轴

Math 四元数与三轴,math,computational-geometry,quaternions,Math,Computational Geometry,Quaternions,给定一个四元数q和三个形成坐标轴的三维向量(vx、vy、vz),坐标轴可以朝向任意方向,但都相互垂直,从而形成一个三维空间 如何检查四元数q是否旋转到与某些3D向量(vx,vy,vz)相同的方向(或相反的方向)?如果q=(w,x,y,z),其中w是“标量部分”,qv=(x,y,z)是“向量部分”, 然后可以计算qv和每个基向量vx,vy,vz之间的角度 使用点积 cos(θ)=(qv点vx)/(| qv |*| vx |) 如果cos(θ)为+1,则q的旋转轴平行于该基向量 cos(θ)=-1表

给定一个四元数q和三个形成坐标轴的三维向量(vx、vy、vz),坐标轴可以朝向任意方向,但都相互垂直,从而形成一个三维空间

如何检查四元数q是否旋转到与某些3D向量(vx,vy,vz)相同的方向(或相反的方向)?

如果q=(w,x,y,z),其中w是“标量部分”,qv=(x,y,z)是“向量部分”, 然后可以计算qv和每个基向量vx,vy,vz之间的角度 使用点积

cos(θ)=(qv点vx)/(| qv |*| vx |)

如果cos(θ)为+1,则q的旋转轴平行于该基向量


cos(θ)=-1表示它们是反平行的。

Hmm。。。这完全忽略了四元数的“w”分量。这是对的吗?@qutern:没错……我希望我没有误解你的问题!如果将q规格化为单位四元数,则w=cos(alpha/2)给出旋转角度alpha,(x,y,z)是位于旋转轴上的向量。我想你问的是如何确定旋转轴(x,y,z)是否平行于一个基向量vx,vy,vz。如果是,则该计算不需要w。