下载
登录/ 注册
主页
论坛
视频
热股
可转债
下载
下载

杂卷:四元数的乘法不符合交换律(commutative law)的原因

22-06-11 22:52 435次浏览
冈风
+关注
博主要求身份验证
登录用户ID:
作者:雷小帅

2017-09-28 14:49:05
(文章有删节)
旋转,应该是三种坐标变换——缩放、旋转和平移。

三种旋转方式的优缺点:

矩阵旋转
优点:
旋转轴可以是任意向量;

缺点:
旋转其实只需要知道一个向量+一个角度,一共4个值的信息,但矩阵法却使用了16个元素;而且在做乘法操作时也会增加计算量,造成了空间和时间上的一些浪费;

欧拉旋转
优点:
很容易理解,形象直观;表示更方便,只需要3个值(分别对应x、y、z轴的旋转角度);
但按我的理解,它还是转换到了3个3*3的矩阵做变换,效率不如四元数;

缺点:
之前提到过这种方法是要按照一个固定的坐标轴的顺序旋转的,因此不同的顺序会造成不同的结果;会造成万向节锁(Gimbal Lock)的现象。这种现象的发生就是由于上述固定坐标轴旋转顺序造成的。理论上,欧拉旋转可以靠这种顺序让一个物体指到任何一个想要的方向,但如果在旋转中不幸让某些坐标轴重合了就会发生万向节锁,这时就会丢失一个方向上的旋转能力,也就是说在这种状态下我们无论怎么旋转(当然还是要原先的顺序)都不可能得到某些想要的旋转效果,除非我们打破原先的旋转顺序或者同时旋转3个坐标轴。这里有个视频可以直观的理解下;由于万向节锁的存在,欧拉旋转无法实现球面平滑插值;

四元数旋转
优点:
可以避免万向节锁现象;只需要一个4维的四元数就可以执行绕任意过原点的向量的旋转,方便快捷,在某些实现下比旋转矩阵效率更高;
可以提供平滑插值;

缺点:
比欧拉旋转稍微复杂了一点点,因为多了一个维度;
理解更困难,不直观;

欧拉旋转是怎么运作的

欧拉旋转是我们最容易理解的一种旋转方式。以我们生活中为例,一个舞蹈老师告诉我们,完成某个舞蹈动作需要先向你的左边转30°,再向左侧弯腰60°,再起身向后弯腰90°(如果你能办到的话)。上面这样一个旋转的过程其实和我们在三维中进行欧拉旋转很类似,即我们是通过指明绕三个轴旋转的角度来进行旋转的,不同的是,日常生活中我们更愿意叫这些轴为前后左右上下。而这也意味着我们需要指明一个旋转顺序。这是因为,先绕X轴旋转90°、再绕Y轴30°和先绕Y轴旋转90°、再绕X轴30°得到的是不同的结果。
在Unity里,欧拉旋转的旋转顺序是Z、X、Y,这在相关的API文档中都有说明,例如Transform.Rotate。其实文档中说得不是非常详细,还有一个细节我们需要明白。如果你仔细想想,就会发现有一个非常重要的东西我们没有说明白,那就是旋转时使用的坐标系。给定一个旋转顺序(例如这里的Z、X、Y),以及它们对应的旋转角度(α,β,r),有两种坐标系可以选择:
1.绕坐标系E下的Z轴旋转α,绕坐标系E下的Y轴旋转β,绕坐标系E下的X轴旋转r,即进行一次旋转时不一起旋转当前坐标系;
2.绕坐标系E下的Z轴旋转α,绕坐标系E在绕Z轴旋转α后的新坐标 系E‘下的Y轴旋转β,绕坐标系E‘在绕Y轴旋转β后的新坐标系E‘‘下的X轴旋转r, 即在旋转时,把坐标系一起转动;
很容易知道,这两种选择的结果是不一样的。但如果把它们的旋转顺序颠倒一下,其实结果就会一样。说得明白点,在第一种情况下、按ZXY顺序旋转和在第二种情况下、按YXZ顺序旋转是一样的。
打开淘股吧APP
0
评论(2)
收藏
展开
热门 最新
冈风

22-06-11 23:18

0
莱布尼兹则认为:“虚数是美妙而奇异的神灵隐蔽所,它几乎是既存在又不存在的两栖物。” 

职业:数学家哲学家生卒:1646年7月1日-1716年11月14日代表作品:《神义论》,《单子论》,《论中国人的自然神学》
简介:莱布尼茨一般指戈特弗里德·威廉·莱布尼茨。

这家伙研究过中国的东西有这样的超超前认知也就没什么奇怪了。
冈风

22-06-11 23:14

0
1.物质要用到虚数 。

2.物质与物质,物质与意识的互动要用到复数。
3.纯意识以及意识与意识的互动要用到超复数。
刷新 首页上一页 下一页末页
提交