Math 四元数到矩阵旋转仅一个轴
我有一个四元数,它同时包含三个轴(x,y,z)的旋转 我想将此四元数转换为旋转矩阵,但仅转换四元数或任何其他轴在Y轴上的旋转,而不同时转换所有三个轴。可能的路径:Math 四元数到矩阵旋转仅一个轴,math,Math,我有一个四元数,它同时包含三个轴(x,y,z)的旋转 我想将此四元数转换为旋转矩阵,但仅转换四元数或任何其他轴在Y轴上的旋转,而不同时转换所有三个轴。可能的路径: 通过四元数变换单位向量X=(1,0,0)和Z=(0,0,1) 称这些旋转向量为(x0,x1,x2)和(z0,z1,z2) 如果旋转完全围绕Y,我们会: (x0,x1,x2)=(cos(θ),0,sin(θ)) (z0,z1,z2)=(-sin(θ),0,cos(θ)) 未使用的是(y0,y1,y2)=(0,1,0) 那么,计算一
- 通过四元数变换单位向量X=(1,0,0)和Z=(0,0,1)
- 称这些旋转向量为(x0,x1,x2)和(z0,z1,z2)
- 如果旋转完全围绕Y,我们会:
- (x0,x1,x2)=(cos(θ),0,sin(θ))
- (z0,z1,z2)=(-sin(θ),0,cos(θ))
- 未使用的是(y0,y1,y2)=(0,1,0)
- 那么,计算一下
- c=(x0+z2)/2
- 和s=(x2-z0)/2
- 然后归一化,使c2+s2等于1
- 标准=sqrt(c*c+s*s)
- 如果正常!=0:
- c=c/标准
- s=s/norm
- (如果标准为零,我们也无能为力)
- 角度应为atan2(c,s)
- 旋转矩阵应该是[[c,0,-s],[0,1,0],[s,0,c]]