Unity旋转中的欧拉角与四元数
发布时间
阅读量:
阅读量
In Unity, the rotation feature is most commonly associated with the Transform.rotation property. However, internally, this rotation is calculated using Quaternions (四元数), while Inspactor displays rotation values converted from Euler Angles (欧拉角).
Unity通过四元数来计算并存储实际的旋转数值;运用欧拉角来描述并展示基于世界坐标系的旋转;而Inspector界面中的欧拉角表示是将物体的实际四元数值转换为对应的欧拉角来展示。
在Unity中,欧拉角旋转遵循固定的旋转顺序Z→X→Y。例如,在达到目标坐标(1,2,3)时,其旋转过程依次为(0,0,3)、(0,2,3)、最终到达(1,2,3)。由于欧拉角旋转可能导致万向节死锁现象,即便通过设置eulerAngles来更新旋转变换,其实际处理方式仍需通过转换为四元数来进行计算,并进行四元数计算后存储。最后再将其转换回欧拉角以显示结果。使用欧拉角表示法的主要原因是该方法能够展示超过180度的角度值。
欧拉角产生死锁的主要原因是由于当欧拉角值发生变化时,在模型局部空间内先对Y轴进行旋转变换,在随后
全部评论 (0)
还没有任何评论哟~
