Unity中 欧拉角 旋转矩阵的变换

.Unity中的欧拉角旋转

Unity中的欧拉角旋转可以分两个角度来看,世界和本地。

World 世界 Z-->X-->Y  :

 

 

 

 

Local 本地 Y-->X-->Z :

 

 

 

.Unity中的旋转矩阵

 

  Rx,Ry,Rz

由于unity中的旋转遵从左手定则,因此x,y,z轴的旋转矩阵为

Rx:

 

Ry

 

Rz: 

 

(其实和右手坐标系 + 右手定则的旋转 是一样的)

  合并旋转矩阵 R

这里合并按照世界的欧拉旋转来搞,因此R = RyRxRz

R: 

 

 

 (c:cos s:sin)

.旋转矩阵转欧拉角

  

由以上公式很好求出旋转矩阵->欧拉角的转换:

 

 

 

 

 

 

 

float x = Mathf.Atan2(-matrix[1, 2], Mathf.Sqrt(matrix[1, 0] *matrix[1, 0] + matrix[1, 1] * matrix[1, 1]));
float y = Mathf.Atan2(matrix[0,2], matrix[2,2]);
float z = Mathf.Atan2(matrix[1,0],matrix[1,1]);

 

 

Demon场景

文档:欧拉角 旋转矩阵的变换.note
链接:http://note.youdao.com/noteshare?id=3c3baa8503519cab67b7b682b368add7&sub=AE4E61A1A7B84D249F152099CAE348F4

 

转载于:https://www.cnblogs.com/Spliendid/p/10980393.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值