zoukankan      html  css  js  c++  java
  • 学习和研究下unity3d的四元数 Quaternion

    学习和研究下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的变量比较少也没什么可说的,大家一看都明白。唯一要说的就是xyzw的取值范围是[-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的函数都有什么用。

    函数     
      

  • 相关阅读:
    Http中的patch
    如何实现腾讯地图的路径规划功能?
    各类数据库分页SQL语法
    ABC222F
    ABC222 G
    LG5308 [COCI2019] Quiz(wqs二分+斜率优化DP)
    [USACO21OPEN] Portals G(Kruskal)
    【做题笔记】SP27379 BLUNIQ
    【做题笔记】CF938C Constructing Tests
    CSP-J/S2021 自闭记
  • 原文地址:https://www.cnblogs.com/jiahuafu/p/6122744.html
Copyright © 2011-2022 走看看