首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >四元数旋转-顺时针方向还是逆时针方向?

四元数旋转-顺时针方向还是逆时针方向?
EN

Game Development用户
提问于 2014-11-21 16:14:25
回答 2查看 6.7K关注 0票数 4

当我们将四元数指定为(axis of rotation, rotation amount)时,假设我们正在向下看旋转轴(即相机在原点,沿着轴向量),那么旋转是在哪个方向?

这是否取决于协调系统的手工性?

或者它实际上是一个毫无意义的问题/愚蠢的问题?

EN

回答 2

Game Development用户

回答已采纳

发布于 2014-11-21 17:14:43

这取决于你工作的坐标系。

在右手坐标系中(如。X向右,y向上,z指向观看者),右手规则适用,就像mklingen在现有答案中描述的那样。

在左手坐标系中(如。X右,y向上,z点远离观众),左手规则适用-你把你的左手拇指沿旋转轴,一个正旋转转向你的手指卷曲的方向。

所以重要的是要知道你使用的是哪个坐标系。例如,统一使用左手坐标系。3 system使用右手坐标系。变化的手感改变了一个奇数的轴和所有旋转角度的符号。

“哦,那么四元数基本上是.四维向量?我们只需给出另一个名字?”

不完全是。和4-向量一样,它们是数字的四元组,但解释为四个分量中的三个是用虚单位测量的。这意味着如果由实数组成,两个四元数相乘的方式不同(因为1i * 1i = -1)。这种奇怪的乘法意味着它们的组合就像3D旋转一样(这是我们经常用它们来描述旋转和方向的原因)。

票数 4
EN

Game Development用户

发布于 2014-11-21 16:46:19

四元数不是轴/旋转矢量。这不是他们的工作方式。它们确实编码一个轴/旋转,但不是你所描述的方式。看看维基百科的方程式:

给定一个轴一个_x,a_y,a_Z和角θ,

代码语言:javascript
运行
复制
q = [a_x * sin(theta / 2), a_y * sin(theta / 2), a_z * sin(theta / 2), cos(theta / 2)]

也就是说,如果你有一个轴/旋转矢量,它遵循右手规则。从旋转轴向下看,正旋转将顺时针方向出现。把你的右拇指指向旋转轴。你手指的卷曲是一个正旋转沿那个轴的角度运动。

票数 1
EN
页面原文内容由Game Development提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://gamedev.stackexchange.com/questions/87612

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档