unity 学习笔记(四)欧拉角和四元数

欧拉角和四元数

1.简介

Quaternion又称四元数,由x,y,z和w这四个分量组成,四元数的乘法不符合交换律。从明确地角度而言,四元数是复数的不可交换延伸。如把四元数的集合考虑成多维实数空间的话,四元数就代表着一个四维空间,相对于复数为二维空间。

 

2.Unity里面的Transform组件里的Rotation是四元数,但是他是以欧拉角(Vector3)的形式展现在我们面前,目的就是为了方便我们修改。因此,我们给Rotation直接赋值的时候,也只能用Quaternion赋值。意识到这点很重要

rotation.eulerAngles = new Vector3(0, 30, 0);

 

3.四元数q转欧拉角v

Vector3 v = q.eulerAngles;

 

4.欧拉角v转四元数q

Quaternion q = Quaternion.Euler(v);

 

5.获取某物体的旋转角度

transform.rotation:物体旋转角度的四元数(受父物体影响)

transform.localRotation:物体旋转角度的四元数(不受父物体影响)

transform.eulerAngles:物体旋转角度,(Inspector面板中Rotation显示的数,受父物体影响)

transform.localEulerAngles:物体旋转角度,(Inspector面板中Rotation显示的数,不受父物体影响)

 

6.赋值操作示列

PlayerEx.transform.position = new Vector3(1f, -1f, 1);

PlayerEx.transform.rotation = Quaternion.Euler(0 , - 30, 0);

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值