unity中的欧拉角
unity中欧拉角用的是heading - pitch -bank系统(zxy惯性空间旋转系统):
当认为旋转顺序是zxy时,是相对于惯性坐标系旋转。
当认为旋转顺序是yxz时,是相对于物体坐标系旋转。 另外一种常用的欧拉角系统是roll - pitch - yaw系统(zxy物体空间旋转系统),对于此系统:
当认为旋转顺序是zxy时,是相对于物体坐标系旋转。
当认为旋转顺序是yxz时,是相对于惯性坐标系旋转。 ----
万向锁: http://player.youku.com/player.php/sid/XNzkyOTIyMTI=/v.swf
----
如下图,将x轴作为y轴的子节点,将z轴作为x轴的子节点。那么此装置属于哪种欧拉角系统?
判断方法1:
假设对此系统按yxz的顺序进行旋转,则:
1,首先绕y轴旋转,子节点x,z轴会发生变化。
2,再绕x轴旋转,由于上一步中x已发生变化,所以是绕变化后的x轴旋转。由于z轴是x轴子节点,所以z轴发生变化。
3,再绕z轴旋转,由于前两步中z轴已发生变化,所以是绕变化后的z轴旋转。
由此可见,按yxz顺序旋转的话,每一步都是在上一步变化后的基础上进行旋转,即每一步都是相对于当前物体坐标系进行旋转,所以此系统是“yxz物体空间旋转系统”,即正是unity所采用的欧拉角系统。
判断方法2:
假设对此系统按zxy的顺序进行旋转,则:
1,首先绕z轴进行旋转,由于z轴是终端节点,所以x轴和y轴都不会发生变化。
2,再绕x轴进行旋转,由于x轴在上一步旋转中没有发生变化,所以就等价于绕惯性空间的x轴旋转。由于y轴是x轴父节点,所以y轴不会发生变化。
3,再绕y轴进行旋转,由于y轴在上一步旋转中没有发生变化,所以就等价于绕惯性空间的y轴旋转。
由此可见,按zxy顺序旋转的话,每一步都等价于相对于惯性坐标系进行旋转,所以此系统是“zxy惯性空间旋转系统”,即正是unity所采用的欧拉角系统。
----
下图列举出各种旋转顺序的“物体空间旋转系统”的万向锁情况:
可见,万向锁就是:在指定旋转顺序下,绕第二轴旋转正或负90至使一三两轴平行或反向平行,一三两轴成了等效轴,于是物体由原来的可绕三个轴旋转变为只能绕两个轴旋转,丢失了一个旋转自由度。
另外还还可以看到,当发生万向锁时,rotation所对应的欧拉角不唯一,如果一三两轴平行,则绕第一轴的旋转角A1和绕第三轴的旋转角A3之和不变即可保证rotation不变;如果一三两轴反向平行,则只要A1和A3之差不变,即可保证rotation不变。
unity中的欧拉角的更多相关文章
- Unity3D中的欧拉角的理解
先贴一个图: 游戏物体的属性视图中调整的角度就是欧拉角啦.. 如果细心,就会发现,单独去调整xyz的时候它并不是按照世界坐标系中的xyz轴来实施旋转的,它表示的是旋转的欧拉角. 什么是欧拉角呢?请看这 ...
- maya和Unity中的坐标系旋转
maya软件是用的右手坐标系,默认旋转顺序是ZYX,即先绕Z轴旋转,再绕Y轴旋转,最后绕X轴旋转. 比如在maya软件中,右侧的旋转顺序是可选的,默认的选择是“XYZ”,其实物体旋转顺序是倒着念,即上 ...
- 【Unity编程】Unity中的欧拉旋转
欧拉角的定义 在写这篇博客之前,我搜索了网上很多关于欧拉角的定义,发现大部分引用自维基百科的定义,我这里也引述一下: 维基百科定义 莱昂哈德·欧拉用欧拉角来描述刚体在三维欧几里得空间的取向.对于任何参 ...
- 【Unity编程】欧拉角与万向节死锁(图文版)
版权声明:本文为博主原创文章,欢迎转载.请保留博主链接:http://blog.csdn.net/andrewfan 万向节死锁(Gimbal Lock)问题 上文中曾经说过,欧拉旋转的顺规和轴向定义 ...
- 【Unity编程】Unity中关于四元数的API详解
本文为博主原创文章,欢迎转载,请保留出处:http://blog.csdn.net/andrewfan Unity中关于四元数的API详解 Quaternion类 Quaternion(四元数)用于计 ...
- unity中camera摄像头控制详解
目录 1. 缘起 2. 开发 2.1. 建立项目 2.2. 旋转 2.2.1. 四元数 2.3. 移动 2.3.1. 向量操作 2.4. 镜头拉伸 2.5. 复位 2.6. 优化 1 缘起 我们的产品 ...
- Unity中使用Attribute
Attribute是c#的语言特性 msdn说明如下: The Attribute class associates predefined system information or user-def ...
- 在Unity中使用UGUI修改Mesh绘制几何图形
在商店看到这样一个例子,表示很有兴趣,他们说是用UGUI做的.我想,像这种可以随便变形的图形,我第一个就想到了网格变形. 做法1: 细心的朋友应该会发现,每个UGUI可见元素,都有一个‘Canvas ...
- Unity中使用WebView
Unity中使用WebView @(设计) 需求,最近游戏中需要引入H5直播页面和更新比较频繁的赛事页面,需求包括:加密传参数.和Unity交互,在Unity框架下其实有几种方案: 内置函数Appli ...
随机推荐
- iOS多线程之NSOperation,NSOperationQueue
使用 NSOperation的方式有两种, 一种是用定义好的两个子类: NSInvocationOperation 和 NSBlockOperation. 另一种是继承NSOperation 如果你也 ...
- vector 初始化
//数组初始化vector int iarray[]={1,2,3,4,5,6,7,8,9,0}; //count: iarray数组个数 size_t count=sizeof(iarray)/si ...
- Unity3D入门(一):环境搭建
1.Unity3D 目前最新正式版本是4.2.1f 官网下载,以前的版本安装时候需要序列号激活,新版本4.2.1f 不需要,完全免费,但发布的时候需要许可证 2.要学习的同学,下载频道可以找到破解补 ...
- 程序员是怎么炼成的---OC题集--练习答案与题目(1)
一. 1. 定义3个类,全部代码.效果:能默写,关键词全部正确. 2. ⾯面向对象和⾯面向过程有什么区别? 答:面向对象以事物(对象)为核⼼,完成事件只是一个任务.面向过程以事件为核心,为了完成任务, ...
- (实用篇)PHP ftp上传文件操作类
<?php /** * 作用:FTP操作类( 拷贝.移动.删除文件/创建目录 ) */ class class_ftp { public $off; // 返回操作状态(成功/失败) publi ...
- Java 性能优化实战记录(1)---定位并分析耗cpu最多的线程
1) jps 列出相关的java进程, 以及对应的pid 也可以使用如下命令来尝试 ps aux | grep java --color 2) top -Hp <pid> ...
- SAP保存操作记录CDHDR和CDPOS表
http://blog.sina.com.cn/s/blog_7dce1fac01014yp2.html转自sap的字段和对象的修改都会保存旧值,数据保存在CDHDR和CDPOS表中,提取旧值可以采用 ...
- 彻底弄懂css中单位px和em,rem的区别 转的自己看
国内的设计师大都喜欢用px,而国外的网站大都喜欢用em和rem,那么三者有什么区别,又各自有什么优劣呢? PX特点 1. IE无法调整那些使用px作为单位的字体大小: 2. 国外的大部分网站能够调整的 ...
- JS网址正则验证
function IsURL(str_url){ var strRegex = "^((https|http|ftp|rtsp|mms)?://)" + "?(([0-9 ...
- zBoot/Makefile
#上层makefile调用执行make命令,执行的应该是第一个目标allHEAD = head.oSYSTEM = ../tools/zSystem#LD = gcc#TEST = -DTEST_DR ...