【问题标题】:Beginner Quaternion clarification初学者四元数说明
【发布时间】:2018-12-15 07:19:07
【问题描述】:

我正在尝试以编程方式可视化矢量点,但我想澄清我的输出结果。

如果向量 p = i = [1,0,0] 绕 x 轴旋转 90 度,则四元数 q 为:q = cos(45) + [1,0,0]*sin(45) = 0.707 + 0.707*i

pn = qpq-1;

现在计算pn(0.707+0.707*i)(i)(0.707-0.707*i) = i

所以,旋转矢量pn = [1,0,0]。这是p=pn

p=pn 正确吗?如果是,谁能解释一下?还是这是四元数的特殊性质?

【问题讨论】:

  • @TrebuchetMS。谢谢您的建议。我正在尝试以编程方式可视化此问题中提到的矢量点。所以我想澄清一下我的输出结果。
  • 如果您沿其自己的方向旋转矢量,它不会改变。这与四元数无关。 (另外,i 的两个定义令人困惑——您将它同时用作旋转轴和虚数单位。)
  • @meowgoesthedog 谢谢,我在向量 p 中使用了 'i' 作为四元数,是 0+1*i+0*j+0*k。

标签: math vector rotation quaternions


【解决方案1】:

在您提供的示例中,您基本上围绕自身旋转了一个向量(即旋转轴等于旋转的向量,在本例中为 [1,0,0])。正如 cmets 中所说,无论旋转角度如何,围绕自身旋转矢量都会使其完好无损。

尝试您的示例,其中旋转矢量沿 y 轴 [0,1,0],旋转轴为 [1,0,0]。也许this 会帮助你可视化一些基本的旋转。

另外,请注意向量 v 使用单位四元数 q 的旋转由下式给出:

Imaginary{q * [0, v_x, v_y, v_z] * conjugate(q)}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-02
    • 1970-01-01
    • 2016-01-17
    • 1970-01-01
    • 1970-01-01
    • 2019-07-09
    相关资源
    最近更新 更多