中的四元数和欧拉角都是用来表示物体的旋转的数学概念。欧拉角是将旋转分解为绕X、Y和Z轴的三个独立旋转角度的方法。通常使用欧拉角顺序(Yaw、Pitch、Roll)来表示物体的旋转,也就是绕Y轴旋转的偏航角、绕X轴旋转的俯仰角和绕Z轴旋转的翻滚角。
中的旋转和方向应用程序中的旋转通常以两种方式之一表示:四元数或欧拉角。与矢量可以表示位置或方向(从原点测量方向)的方式相同,四元数可以表示方向或旋转:从旋转“原点”或“Identity”测量旋转。度”的概念,而是设置为与旋转结果相同的方向。会重新采样这些动画,并为动画中的每个帧生成一个新的四元数关键帧,从而避免任何关键帧之间的旋转可能超过四元数的有效范围的情况。
在unity中已知两个边求角度使用反三角函数:UnityAPI提供的函数角度均需要换算为弧度。之后使用反余弦函数解得弧度或者角度。与向量不同,这里的欧拉角只是借用了Vector3这个结构体,所以欧拉角并没有方向和大小,其表示的是各个分量的偏移角度。沿坐标轴旋转为单位的角度,符合人的思考。cos(θ/2)这里的θ为弧度,unity中计算角度都为弧度。通过代码访问当前物体的角度:
在特定坐标系下用于描述物体的旋转量heading:物体绕自身的对象坐标系的Y轴旋转的角度pitch:物体绕自身的对象坐标系的X轴旋转的角度bank:物体绕自身的对象坐标系的Z轴,旋转的角度因此在计算机中我们往往使用四元数来表示三维空间中的旋转信息。对于给定的任意一个四元数都可以表示3D空间中的一个旋转量。四元数乘以向量,相当于把向量旋转相应的四元数
如绕X轴旋转α,绕Y’旋转β,绕Z’‘旋转γ。如绕X轴旋转α,绕Y轴旋转β,绕Z轴旋转γ。angles),旋转矩阵RPY:先绕Z轴旋转,再绕Y轴旋转,最后是绕X轴旋转。欧拉角:先绕Z轴旋转,再绕Y轴旋转,最后再绕Z轴旋转旋转矩阵:先绕X轴旋转,再绕Y轴旋转,最后再绕Z轴旋转。
静态欧拉角:其旋转轴使用的是静止不同的参考系。动态欧拉角:使用object本身的坐标系,因而会随着object旋转而旋转。
先求aXb,即同时垂直于a和b的向量,显然它就是旋转轴。这样就把问题转换成了“绕任意轴旋转一个角度”。所以问题就变成了“怎么再找到两个向量,它们互相之间垂直,且都和旋转轴垂直”。二、将a,b两向量变换到以旋转轴为一根坐标轴的坐标系下把之前说的要变换的a和b给代换掉(3,2,1),然后用之前求出来的以旋转轴为一根坐标轴的那组正交基带进(u,v,w),求出来的(x,y,z)也就是变换后的坐标了。