Artik Slayer Asked:2020-02-03 23:45:22 +0000 UTC2020-02-03 23:45:22 +0000 UTC 2020-02-03 23:45:22 +0000 UTC 什么是“四元数旋转”? 772 “四元数旋转”栏目负责什么? 单独更改值不会执行任何操作。 但是随着骨骼的一般变化/旋转 - 值也会发生变化。 blender 1 个回答 Voted Best Answer Crantisz 2020-02-04T03:18:03Z2020-02-04T03:18:03Z 四元数是在角落旋转的替代方法。原则上角度并不理想,例如,由于Gimbal Lock,当轴在旋转过程中加起来并且自由度丢失时。原则上,没有完美的旋转系统,所以有四元数等替代品。 首先在你的脑海中将欧拉角和四元数分开,角度以度和弧度来衡量,四元数更像是一个 4 维向量,W 分量与其他三个具有相同的值。X、Y、Z 和 W 是等价的。 如果你懂英语,James Grime最能写出这个主题。如果这不完全清楚,我会这样描述。 想象一个 3D 矢量。它不是一个四元数,但它看起来像一个: 向量与垂直面和水平面所形成的角度可以用这个向量来表示。然而,与四元数不同,它不可能表达一个向量绕其轴的旋转。一般来说,比较一个四元数和一个向量从数学的角度来看是不正确的,但是我们将省略这个并考虑第二个例子,假设向量坐标是 0,0,1。 很容易猜到具有这样坐标的向量垂直向上看。现在向量是 0,0,2。它是如何导向的?完全一样。是的,它更长,但扭曲是一样的。因此,无论您如何缩放矢量,它都不会旋转。同样,通过改变四元数的 W 分量,你改变了它的长度,但不改变它的旋转。我们还注意到四元数 1,0,0,0 也会发生同样的情况;0.1.0.0;0,0,1,0 和 0,0,0,1 因为 X,Y,Z,W 是等价的。 这个性质也适用于四元数。你增加一个复数的一部分,它会改变“大小”而不是旋转。 你可能认为四元数包含冗余信息,也许它们确实如此。但是它们在编程中很受欢迎,因为您可以将对象旋转到所需的角度,无论它展开多么复杂,只需将四元数相乘即可。 通过欧拉角和四元数比较旋转动画 为什么旋转物体时 W 会发生变化? 四元数系统中的旋转是通过将一个四元数乘以另一个来完成的。任何不等于 90 度的旋转总是由至少 2 个分量表示。在这里,您可以同时更换 2 个零件。 也可以看看: 维基百科文章 什么是四元数 - 用人类语言解释 假人的四元数 棘手的四元数
四元数是在角落旋转的替代方法。原则上角度并不理想,例如,由于Gimbal Lock,当轴在旋转过程中加起来并且自由度丢失时。原则上,没有完美的旋转系统,所以有四元数等替代品。
首先在你的脑海中将欧拉角和四元数分开,角度以度和弧度来衡量,四元数更像是一个 4 维向量,W 分量与其他三个具有相同的值。X、Y、Z 和 W 是等价的。
如果你懂英语,James Grime最能写出这个主题。如果这不完全清楚,我会这样描述。
想象一个 3D 矢量。它不是一个四元数,但它看起来像一个:
向量与垂直面和水平面所形成的角度可以用这个向量来表示。然而,与四元数不同,它不可能表达一个向量绕其轴的旋转。一般来说,比较一个四元数和一个向量从数学的角度来看是不正确的,但是我们将省略这个并考虑第二个例子,假设向量坐标是 0,0,1。
很容易猜到具有这样坐标的向量垂直向上看。现在向量是 0,0,2。它是如何导向的?完全一样。是的,它更长,但扭曲是一样的。因此,无论您如何缩放矢量,它都不会旋转。同样,通过改变四元数的 W 分量,你改变了它的长度,但不改变它的旋转。我们还注意到四元数 1,0,0,0 也会发生同样的情况;0.1.0.0;0,0,1,0 和 0,0,0,1 因为 X,Y,Z,W 是等价的。
这个性质也适用于四元数。你增加一个复数的一部分,它会改变“大小”而不是旋转。
你可能认为四元数包含冗余信息,也许它们确实如此。但是它们在编程中很受欢迎,因为您可以将对象旋转到所需的角度,无论它展开多么复杂,只需将四元数相乘即可。
通过欧拉角和四元数比较旋转动画
为什么旋转物体时 W 会发生变化?
四元数系统中的旋转是通过将一个四元数乘以另一个来完成的。任何不等于 90 度的旋转总是由至少 2 个分量表示。在这里,您可以同时更换 2 个零件。
也可以看看:
维基百科文章
什么是四元数 - 用人类语言解释
假人的四元数
棘手的四元数