你们好,最近小活发现有诸多的小伙伴们对于水果机压大小技巧,水果机压分技巧99倍压这个问题都颇为感兴趣的,今天小活为大家梳理了下,一起往下看看吧。
1、旋转应该是三种坐标变换中最复杂的:缩放、旋转和平移。大家应该听说过有一种旋转的表示法叫四元数。按照我们的习惯,我们更熟悉旋转的另外两种表示:——矩阵旋转和欧拉旋转。
(资料图片)
2、矩阵旋转是用一个4*4的矩阵来表示绕任意轴旋转的变换矩阵,而欧拉选择是按照一定的坐标轴顺序(比如先x,后y,最后z)变换坐标或向量,每个轴旋转一定的角度,实际上是一系列坐标轴旋转的组合。
3、那么,四元数是什么?简单来说,四元数本质上是一个高阶复数。)是四维空间,相对于复数的二维空间。我们高中应该都学过复数。复数由实部和虚部组成,即x=a bi。
4、I是一个虚数单位。如果你记得,你应该知道我2=-1。四元数其实和我们学过的差不多,只是它的虚部包含三个虚单位,I,J,K,
5、也就是说,一个四元数可以表示为x=a bi cj dk。那么为什么和旋转有关系呢?
6、在Unity中,tranform组件有一个名为rotation的变量,它的类型是四元数。很多初学者会直接取旋转的X,Y,Z,以为它们分别对应变换面板中R的分量。
7、当然,我们很快就会发现这是完全错误的。其实四元数的x,y,z,r这三个值直观上没什么关系。当然会有一个表达式可以转换,后面会讲到。
8、矩阵旋转的优点:旋转轴可以是任意向量;缺点:旋转其实只需要知道一个矢量和一个角度的信息,一共4个值,但是矩阵法用了16个元素;而且做乘法运算时会增加计算量,会造成一定的空间和时间浪费;
9、欧拉旋转的优点:简单易懂,直观表示更方便,只需要三个值(分别对应X、Y、Z轴的旋转角度);但根据我的理解,还是转化成三个3*3的矩阵,效率不如四元数。
10、缺点:前面说过,这种方法是按照一个固定坐标轴的顺序旋转的,所以顺序不同会导致结果不同;会造成万向节锁的现象。这种现象是由上述固定坐标轴的旋转顺序造成的。
11、理论上,欧拉旋转可以让一个物体按照这个顺序指向任意一个想要的方向,但是如果在旋转过程中不幸有一些坐标轴重叠,就会发生万向节锁,然后就失去了一个方向的旋转能力。
12、也就是说,在这种状态下,无论我们怎么旋转(当然是按照原来的顺序),都不可能得到某种想要的旋转效果,除非我们打破原来的旋转顺序,或者同时旋转三个坐标轴。下面是一个可以直观理解的视频;由于万向节锁,
13、欧拉旋转不能实现球面光滑插值。
14、四元数旋转的优点:可以避免万向节锁;只需要一个4维四元数来围绕任意原点旋转矢量,方便快捷,在某些实现中比旋转矩阵更高效。可以提供平滑的插值;缺点:比欧拉旋转稍微复杂一点,
15、因为多了一个维度;理解比较难,不直观。
以上就是水果机压分技巧99倍压这篇文章的一些介绍,希望对大家有所帮助。
标签: