学习和研究下unity3d的四元数 Quaternion

简介: 学习和研究下unity3d的四元数 Quaternion       今天准备学习和研究下unity3d的四元数 Quaternion 四元数在电脑图形学中用于表示物体的旋转,在unity中由x,y,z,w 表示四个值。

学习和研究下unity3d的四元数 Quaternion    

 

今天准备学习和研究下unity3d的四元数 Quaternion
四元数在电脑图形学中用于表示物体的旋转,在unity中由x,y,z,w 表示四个值。
四元数是最简单的超复数。复数是由实数加上元素 i 组成,其中i^2 = -1 \,。 相似地,四元数都是由实数加上三个元素 i、j、k 组成,而且它们有如下的关系: i^2 = j^2 = k^2 = ijk = -1 \, 每个四元数都是 1、i、j 和 k 的线性组合,即是四元数一般可表示为a + bi + cj + dk \,。
具体的四元数知识可从百度、维基等网站了解。
http://baike.baidu.com/view/319754.htm
现在只说说在unity3D中如何使用Quaternion来表达物体的旋转。
基本的旋转我们可以用脚本内置旋转函数transform.Rotate()来实现。 
function Rotate (eulerAngles : Vector3, relativeTo : Space = Space.Self) : void

但是当我们希望对旋转角度进行一些计算的时候,就要用到四元数Quaternion了。我对高等数学来说就菜鸟一个,只能用最朴素的方法看效果了。
Quaternion的变量比较少也没什么可说的,大家一看都明白。唯一要说的就是x\y\z\w的取值范围是[-1,1],物体并不是旋转一周就所有数值回归初始值,而是两周。
初始值: (0,0,0,1)
沿着y轴旋转:180°(0,1,0,0) 360°(0,0,0,-1)540°(0,-1,0,0) 720°(0,0,0,1) 
沿着x轴旋转:180°(-1,0,0,0) 360°(0,0,0,-1)540°(1,0,0,0) 720°(0,0,0,1)
无旋转的写法是Quaternion.identify
现在开始研究Quaternion的函数都有什么用。

函数     
  

相关文章
|
4月前
|
数据可视化 vr&ar C#
|
Web App开发 编解码 前端开发
更专业省心的来了,你没必要研究UE4和Unity官方推流了!
需求催生了一种新的“云渲染”方案,将庞大负载的“渲染”放到云端强大算力的服务器去执行,前端仅仅是展示和交互。 本文小编介绍了目前主流的3种方案,如果你感兴趣的话一起看看吧~
更专业省心的来了,你没必要研究UE4和Unity官方推流了!
|
存储 vr&ar C#
Unity学习4:如何实现2D图像跟踪(涂色类AR项目实践1)
AR tracked image manager(2D图像检测追踪管理器)
420 0
Unity学习4:如何实现2D图像跟踪(涂色类AR项目实践1)
|
数据可视化 vr&ar C#
Unity学习3,如何显示与隐藏平面检测
首先搭建好基本环境,在AR Session Origin下添加一个AR Plane Manager对象,并添加一个预制体AR Default Plane到AR Plane Manager对象的Plane Prefab属性下(这一部分在Unity配置Android开发环境下有介绍不再记录)Unity配置Android开发环境与第一个Demo
292 0
Unity学习3,如何显示与隐藏平面检测
UGUI系列-Dropdown控件研究(Unity3D)
Dropdown下拉列表,控件还是很强大的,做UI的时候用的比较多,现在就将Dropdown使用中的一些经验总结起来,分享给大家了
|
图形学 Android开发
Unity从学习到赚钱系列-聊天气泡及字体模糊
众所周知,人生是一个漫长的流程,不断克服困难,不断反思前进的过程。在这个过程中会产生很多对于人生的质疑和思考,于是我决定将自己的思考,经验和故事全部分享出来,以此寻找共鸣!!!
335 0
|
人工智能 数据可视化 图形学
Unity火爆插件Behavior Designer行为树插件学习
如果要让游戏里的角色或者NPC能执行预设的AI逻辑,最简单的用IF..ELSE...神器既可以实现, 但是再复杂的一般用经典的状态机来切换状态,但是写起来比较麻烦。相对的,行为树(Behavior Tree)理解和编辑起来就非常简单了。
|
图形学 Windows 容器
Unity学习系列一简介
一、简介 Unity的目标是为了提升"依赖注入"的思想,去建立更加松耦合的系统.patterns & practices 小组在那个时候实现DI的方式和我们现在认为的DI有所不同,DI不是单一的可重复使用的容器,而是应该专门用于正在使用它的系统.
1604 0
|
算法 API C#
怎么规划一个零基础学习Unity3D的“方法”或者“流程”?
学习分为4个阶段 一、朦胧期这个阶段你主要是在朦胧中度过,通常脑子里想的就是,卧槽,这特么是啥?卧槽,这特么又是啥?你看着命令行里面的HelloWorld静静的发呆,第一次能完全打出来的时候脸上会露出 “四国以 ”的表情。
1440 0