• 学习和研究下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的函数都有什么用。

    函数     
      

  • 相关阅读:
    Go学习2-切片
    Go学习1-MOD
    lua学习之逻辑运算符not,and,or
    google protobuf c++ 反射
    我要谴责一下,你们复制别人的答案好歹仔细看看
    远程登录redis
    openssl进行RSA加解密(C++)
    linux通过进程名查看其占用端口
    简体字丶冯|服务网关kong-docker安装
    简体字冯|docker-安装docker私有库
  • 原文地址:https://www.cnblogs.com/jiahuafu/p/6122744.html
Copyright © 2020-2023  润新知