网站大量收购闲置独家精品文档,联系QQ:2885784924

u3d07用quaternion来对一个坐标点进行旋转..doc

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
u3d07用quaternion来对一个坐标点进行旋转.

u3d07用quaternion来对一个坐标点进行旋转 在unity3d中,用四元数来表示旋转,四元数英文名叫quaternion . 比如 transform.rotation 就是一个四元数,其由四个部分组成 Quaternion = (xi + yj + zk + w ) = (x,y,z,w) 1. /wiki/Quaternion 有四元数的定义 2. /wiki/Quaternions_%26_spatial_rotation 有关四元数旋转方面的基本概念和用法 quaternion 中 (x,y,z) 跟旋转轴有关, w 与绕旋转轴旋转的角度有关,因为它们都要经过代数运算才能得出旋转轴和旋转角度 在unity3d中, quaternion 的乘法操作 (operator * ) 有两种操作: (1) quaternion * quaternion , 例如 q = t * p; 这是将一个点先进行t 操作旋转,然后进行p操作旋转. (2) Quaternion * Vector3, 例如 p : Vector3, t : Quaternion , q : Quaternion; q = t * p; 这是将点p 进性t 操作旋转; 我进行的是第2种操作,即对一个向量进行旋转; 首先 ,Quaternion 的基本数学方程为 : Q = cos (a/2) + i (x * sin(a/2)) + j (y * sin(a/2)) + k(z * sin(a/2)) (a 为旋转角度) Q.w = cos (angle / 2) Q.x = axis.x * sin (angle / 2) Q.y = axis.y * sin (angle / 2) Q.z = axis.z * sin (angle / 2) 我们只要有角度就可以给出四元数的四个部分值,例如我想要让点M=Vector3(o,p,q) 绕x轴顺时针旋转90度;那么对应的quaternion数值就应该为: Q : Quaternion; Q.x = 1 * sin(90度/2) = sin(45度) = 0.7071 Q.y = 0; Q.z = 0; Q.w = cos(90度/2) = cos (45度) = 0.7071 Q = (0.7071, 0 , 0 , 0.7071); m = Q * m; (将点m 绕 x轴(1,0,0) 顺时针旋转了90度) 这是quaternion 的最基本用法,主要给出角度,就可以算出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 \,。/view/319754.htm 现在只说说在unity3D中如何使用Quaternion来表达物体的旋转。 基本的旋转我们可以用脚本内置旋转函数transform.Rotate()来实现但是当我们希望对旋转角度进行一些计算的时候,就要用到四元数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.iden

文档评论(0)

xznh + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档