什么是欧拉角
欧拉角的优点:
欧拉角的缺点:
Unity引擎限制沿x轴旋转范围如下:
用欧拉角做旋转代码如下;
public Vector3 eluer;
private void OnGUI()
{
eluer = this.transform.eulerAngles;
if (GUILayout.RepeatButton("沿x轴旋转"))
{
transform.eulerAngles += new Vector3(1, 0, 0);
// transform.eulerAngles += new Vector3(-1, 0, 0);
// this.transform.eulerAngles += Vector3.left;
}
if (GUILayout.RepeatButton("沿Y轴旋转"))
{
transform.eulerAngles += new Vector3(0,1,0);
//this.transform.eulerAngles += Vector3.up;
}
if (GUILayout.RepeatButton("沿z轴旋转"))
{
transform.eulerAngles += new Vector3(0, 0, 1);
// this.transform.eulerAngles += Vector3.forward;
}
}
即用上面代码表示获取的X值在-90—90之间,Y值与Z值在0—360之间 (编译器中Y与Z值显示在-180—180之间)
万向节死锁
总结:
用欧拉角做物体的旋转就会死锁,所以很少用欧拉角做空间的旋转,但是欧拉角对物体角度进行单独的设置是比较好的,但对于物体空间的旋转,数学家们引出了另外一种方式叫四元数。