打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Unity3D 中 用quaternion 来对一个坐标点进行旋转的初步体会
userphoto

2016.06.23

关注
     在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度)
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Unity3D Quaternion各属性和函数测试
Unity3d之Quaternion 学习与应用旋转四元数
Blog: Beautiful maths simplification: quaternion from two vectors – Lol Engine
【Unity技巧】四元数(Quaternion)和旋转
houdini中不得不掌握的技术集锦(5) Vex编程入门II houdini中重点和难点
WPF中3D旋转的实现
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服