Transform.Rotate、欧拉角以及四维数

先来说说这个函数方法:transform.Rotate(float a,float b,float c)
默认情况下是世界坐标,所以函数的作用就是绕着x轴旋转a°,y轴旋转b°,z轴旋转c°,暂且不管他到底是先旋转a°,还是旋转b°,又或者是旋转c°,如果旋转的函数写在了Update函数中,无论他先旋转那个角度,对我们都不会造成影响。
到此我们知道了这个函数方法,那么它与欧拉角又有什么关系呢?是加上(a、b、c)在坐标系中所构成的角度就是欧拉角,也就是在unity属性界面中的Rotation
在这里插入图片描述
欧拉角与四元数的关系,简单点说欧拉角是四元数的简化版,而四元数是欧拉角的详细版,已经知道欧拉角怎么表示与怎么使用了,现在来说一说四元数,首先来看一下他是怎么表示的

Q = (X,Y,Z,W),实际上,所谓的四元数自然由四个元素构成,当然这四个元素代表的并不是度数或者轴,除非向深入了解四元数学,否则只需要知道他代表了在空间中的旋转,通常情况下是不需要修改他的值得

四元输与欧拉角的转化

四元数转化成欧拉角 Vector3 v3=transform.rotation.eulerAngles;
欧拉角转换成四元数 Quaternion rotation = Quaternion.Euler(v3);

什么时候需要转化呢?
当你使用欧拉角的时候发生了死锁问题,就需要转化成四元数去实现功能

死锁问题详解

发布了67 篇原创文章 · 获赞 3 · 访问量 1891

猜你喜欢

转载自blog.csdn.net/lfanyize/article/details/103604257