四元数quaternion

时间:2021-11-06 20:07:59

四元数的简单方法运用
四元数在Unity3D中的作用就是拿来表示旋转。

AngleAxis 
创建一个旋转,绕着某个轴旋转,返回结果是一个四元数。 
跟ToAngleAxis实现的是相反的功能。

Angle 
返回两个旋转值(四元数)之间的角度,返回值是float类型的角度值。 
(不知道这个值算出来后有什么用)

Dot 
点乘,我也不太理解其意义。 
参见

eulerAngles 
返回表示旋转的欧拉角度(Vector3 即3个值) 
(如果调用的是某个物体,则表示该物体当前位置是从原始位置怎么旋转过来的, 
其实就是Inspector里的Rotation的3个值)

Euler 
感觉跟eulerAngles是相反的操作(经测试,确实是) 
输入的是欧拉角的3个值,返回的是一个旋转(四元数)

FromToRotation 
参数是两个Direction(Vector3),返回一个Quaternion 
我觉得主要是用在要把A物体的朝向转成跟B物体的朝向一样时所需要的旋转值(Quaternion) 
然后再调用Transform.Rotate就可以把A旋转成跟B一样了。

identity 
可以理解为单位四元数

Inverse 
就是一个旋转的反旋转,其实就是把刚才的那个旋转转回去。

Lerp 
插值,可以理解为可以把一个物体的朝向转向跟另一个物体一样,跟时间配合可以慢慢地旋转。

LookRotation 
可以让A物体一直朝向B物体。 
参照下面这篇文章的做法,导入ThirdPersonController 
http://blog.csdn.net/lijing_hi/article/details/7272089

Quaternion 
构造函数,参数是4个float值

RotateTowards 
跟Slerp类似

SetFromToRotation 
跟FromToRotation功能一样,只是调用方式不一样。

SetLookRotation 
跟LookRotation功能一样,只是调用方式不一样。

Slerp 
旋转一个角度从from到to。

this[int index] 
像数组那样调用x, y, z, w,感觉还不如直接用.x来调用。 
可能是为了循环方便。

ToAngleAxis 
把一个rotation 转成 angle-axis 形式。跟AngleAxis实现的是相反的功能。 
用引用的方式传入 angle和 axis 。 
这跟transform.localEulerAngles很类似。 
输入:transform.localEulerAngles=(0,0,0); 
输出:angle=0, axis=(1,0,0); 
输入:transform.localEulerAngles=(0,90,0); 
输出:angle=90,axis=(0,1,0); 
输入:transform.localEulerAngles=(270,0,0); 
输出:angle=90,axis=(-1,0,0)

ToString 
格式化成一个字符串

参考:http://blog.csdn.net/yustarg/article/details/8623687

四元数quaternion的更多相关文章

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

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

  2. unity3d的四元数 Quaternion

    原地址:http://www.cnblogs.com/88999660/archive/2013/04/02/2995074.html 今天准备学习和研究下unity3d的四元数 Quaternion ...

  3. [Unity Quaternion]四元数Quaternion的计算方式

    什么是Quaternion四元数 1843年,William Rowan Hamilton发明了四元数,但直到1985年才有一个叫Ken Shoemake的人将四元数引入计算机图形学处理领域.四元数在 ...

  4. 【Unity编程】四元数(Quaternion)与欧拉角

    版权声明:本文为博主原创文章,欢迎转载.请保留博主链接:http://blog.csdn.net/andrewfan 欧拉旋转.四元数.矩阵旋转之间的差异 除了欧拉旋转以外,还有两种表示旋转的方式:矩 ...

  5. 四元数 Quaternion

    最近在重写自己游戏引擎的场景管理模块,重温了一下有关四元数的一些知识,在此做一下简单的笔记. 四元数可以用来准确地描述三维矢量的旋转,并且可以有效地表达多个旋转操作的叠加,因此在三维游戏引擎的场景管理 ...

  6. 【转】【Unity】四元数(Quaternion)和旋转

    http://blog.csdn.net/candycat1992/article/details/41254799

  7. 四元数和旋转(Quaternion & rotation)

    四元数和旋转(Quaternion & rotation) 本篇文章主要讲述3D空间中的旋转和四元数之间的关系.其中会涉及到矩阵.向量运算,旋转矩阵,四元数,旋转的四元数表示,四元数表示的旋转 ...

  8. 【Unity编程】Unity中关于四元数的API详解

    本文为博主原创文章,欢迎转载,请保留出处:http://blog.csdn.net/andrewfan Unity中关于四元数的API详解 Quaternion类 Quaternion(四元数)用于计 ...

  9. 视觉SLAM中的数学基础 第二篇 四元数

    视觉SLAM中的数学基础 第二篇 四元数 什么是四元数 相比欧拉角,四元数(Quaternion)则是一种紧凑.易于迭代.又不会出现奇异值的表示方法.它在程序中广为使用,例如ROS和几个著名的SLAM ...

随机推荐

  1. 10个基础的linux网络和监控命令

    配置zookeeper集群时,需要查看本机ip,输入命令 hostname -i   就会只显示主机ip, 下边搜了一篇常用的    命令,闲的时候多敲敲命令,以便用的时候再找! 我下面列出来的10个 ...

  2. XML的基本操作

    所有 XML 文档中的文本均会被解析器解析.只有 CDATA 区段(CDATA section)中的文本会被解析器忽略.CDATA 部分中的所有内容都会被解析器忽略.CDATA 部分由 "& ...

  3. Centos6.7 安装ReviewBoard2.5.7 问题记录

    pip install ReviewBoard 1.修改pip源,默认源网络不畅 pip install -i http://pypi.douban.com/simple simplejson 2.p ...

  4. math ceil以及math floor,math:round

    ◎Math.ceil()执行向上舍入,即它总是将数值向上舍入为最接近的整数:◎Math.floor()执行向下舍入,即它总是将数值向下舍入为最接近的整数:◎Math.round()执行标准舍入,即它总 ...

  5. Python 基础语法复习

    由于选修了<人工智能模式识别>的课程,要求用phthon来实现算法,乘着周三晚上没课,就来回顾一下python的主要语法. 环境:   Anaconda    Python3.6 1.变量 ...

  6. php里进程创建和分析

    pcntl_fork()函数创建一个子进程,这个子进程仅PID(进程号) 和PPID(父进程号)与其父进程不同成功时,在父进程执行线程内返回产生的子进程的PID,在子进程执行线程内返回0.失败时,在 ...

  7. HDU 4614 Vases and Flowers 【线段树】&plus;【二分】

    <题目链接> 题目大意: 有n个花瓶,每个花瓶中只能放一朵花.两种操作,一种是从A开始放F朵花,如果有的花瓶中已经有花则跳过这个花瓶,往下一个花瓶放:第二种是将区间[A,B]之间花瓶中的花 ...

  8. 你应该知道的JAVA面试题

    你应该知道的JAVA面试题 经常面试一些候选人,整理了下我面试使用的题目,陆陆续续整理出来的题目很多,所以每次会抽一部分来问.答案会在后面的文章中逐渐发布出来. 基础题目 Java线程的状态 进程和线 ...

  9. Android屏幕尺寸适配注意事项

    1 基本设置 1.1 AndroidManifest.xml设置 在中添加子元素 android:anyDensity="true"时,应用程序安装在不同密度的终端上时,程序会分别 ...

  10. 【&lbrack;JLOI2011&rsqb;飞行路线】

    据说这是分层图最短路的板子题 但其实就是一个\(dij\)多带了一维状态 我们看到\(k\)很小所以显然我们可以设计一个这样的状态 \(d[v][k]\)表示从起点到点\(v\)免费走了\(k\)条路 ...