You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用四元数实现多顶点绕X/Y/Z轴旋转?已完成欧拉角转四元数

四元数旋转顶点的分步计算与参数解释

Hey there! Since you're just getting started with quaternions, let's walk through this problem clearly—no confusing jargon, just straight-up steps and explanations.

首先,明确四元数旋转点的核心公式

要使用四元数旋转一个点,我们需要把点转换成纯四元数(实部W=0,虚部X/Y/Z对应点的坐标),然后用以下公式计算旋转后的四元数,最后取其虚部就是旋转后的点坐标:

p'_q = q * p_q * q⁻¹

其中:

  • p_q:原始点转换的纯四元数
  • q:旋转四元数(必须是单位四元数,你的q模长≈√(0.99²+0.07²)≈0.992,接近单位长度,没问题)
  • q⁻¹:q的逆四元数,对于单位四元数,逆等于它的共轭四元数(即保持W不变,X/Y/Z取负)

步骤1:转换点为纯四元数

你的待旋转点p=(X:-0.35, Y:1.4, Z:0.35),对应的纯四元数p_q为:
p_q = (W:0, X:-0.35, Y:1.4, Z:0.35)

步骤2:计算q的共轭四元数

你的旋转四元数q=(W:0.99, X:0.07, Y:0, Z:0),其共轭q_conj(也就是逆)为:
q_conj = (W:0.99, X:-0.07, Y:0, Z:0)

步骤3:执行四元数乘法计算

四元数乘法的规则是(若q1=(w1,x1,y1,z1),q2=(w2,x2,y2,z2)):

w = w1*w2 - x1*x2 - y1*y2 - z1*z2
x = w1*x2 + x1*w2 + y1*z2 - z1*y2
y = w1*y2 - x1*z2 + y1*w2 + z1*x2
z = w1*z2 + x1*y2 - y1*x2 + z1*w2

第一步乘法:计算q * p_q

代入q=(0.99,0.07,0,0)和p_q=(0,-0.35,1.4,0.35):

  • w = 0.990 - 0.07(-0.35) - 01.4 - 00.35 = 0.0245
  • x = 0.99*(-0.35) + 0.070 + 00.35 - 0*1.4 = -0.3465
  • y = 0.991.4 - 0.070.35 + 00 + 0(-0.35) = 1.3615
  • z = 0.990.35 + 0.071.4 - 0*(-0.35) + 0*0 = 0.4445
    得到中间结果:q*p_q = (0.0245, -0.3465, 1.3615, 0.4445)

第二步乘法:计算(q*p_q) * q_conj

代入中间结果和q_conj=(0.99,-0.07,0,0):

  • w = 0.02450.99 - (-0.3465)(-0.07) - 1.36150 - 0.44450 ≈ 0(符合纯四元数的要求,验证正确)
  • x = 0.0245*(-0.07) + (-0.3465)0.99 + 1.36150 - 0.4445*0 ≈ -0.345
  • y = 0.02450 - (-0.3465)0 + 1.36150.99 + 0.4445(-0.07) ≈ 1.317
  • z = 0.02450 + (-0.3465)0 - 1.3615(-0.07) + 0.44450.99 ≈ 0.535

最终结果

旋转后的点p'坐标约为:
X≈-0.345, Y≈1.317, Z≈0.535

四元数各参数的含义

  • W分量:对应cos(θ/2),其中θ是绕旋转轴的旋转角度。你的q.W=0.99,对应θ/2≈8.59°,θ≈17.18°,和你给出的旋转角度一致。
  • X/Y/Z分量:对应sin(θ/2)*u_x, sin(θ/2)*u_y, sin(θ/2)*u_z,其中(u_x,u_y,u_z)是旋转轴的单位向量。你的q中Y=0、Z=0,说明旋转轴是X轴(单位向量(1,0,0)),X分量0.07就是sin(θ/2)的值。

内容的提问来源于stack exchange,提问作者Albert4224

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.08 16:12:40