旋转图形

旋转的数学表达:欧拉角、轴向角、四元数与矩阵

匿名 (未验证) 提交于 2019-12-02 23:38:02
  本文发布于游戏程序员刘宇的个人博客,长期更新,转载请注明源地址https://www.cnblogs.com/xiaohutu/p/10979936.html   数学,是人类对客观世界中数量关系和空间形式本质特征进行研究的科学。对同样的某一特征或者关系,可以根据需求用不同的数学符号、定义和过程来表达。在游戏引擎中,我们也有很多这样的例子,比如本文说到的旋转。 欧拉角   旋转是一个过程,一个物体围绕周或者点角度变化的过程。为了描述这个过程我们必须有参照物,于是我们先定义一个世界坐标系,笛卡尔坐标系。          欧拉角用 分别来表示这个物体相对三个坐标系的夹角,这是由数学家欧拉首先提出而得名的。    然而仅仅有 (x, y, z) 来表示旋转是不够的,还有两个因素:   首先是 旋转顺序 ,从各个轴上进行角度旋转时xyz先后的不同会得到不同的结果。我们称这个顺序定义为 顺规 ,下面一段是维基百科的定义:   在经典力学里,时常用zxz顺规来设定欧拉角;照着第二个转动轴的轴名,简称为x顺规。另外,还有别的欧拉角组。合法的欧拉角组中,唯一的限制是,任何两个连续的旋转,必须绕着不同的转动轴旋转。因此,一共有12种顺规。例如,y顺规,第二个转动轴是y-轴,时常用在量子力学、核子物理学、粒子物理学。另外,还有一种顺规,xyz顺规,是用在航空航天工程学;   按(z-x-z, x

矩阵中的旋转(Rotation)

淺唱寂寞╮ 提交于 2019-11-30 13:14:40
参考的是《游戏和图形学的3D数学入门教程》,算是读书笔记吧。 1.2D中的旋转 如果你要计算一个向量逆时针旋转一定的度数后得到的向量,很多书都只会给一个公式。类似下面的包含sin,cos的矩阵。跟这个相乘就行了。其实看下面这张图就会很清晰。 2.3D中的旋转 首先要说明的是我们这里用的是左手坐标,Z轴是朝里的。DirectX中也是左手坐标。左右手坐标旋转的相乘矩阵是不一样的!有上面的2D旋转得到的规律,我们用于3D旋转中。 2.1绕x轴旋转: 上面这个矩阵的作用就是,如果你要让一个东西在3D中绕x轴旋转一定度数,那么跟上面这个矩阵相乘就行了。就是还要懂矩阵相乘,参考这篇文章: Matrix 矩阵,单位矩阵,Transposition,矩阵与矩阵相乘 2.2绕Y轴旋转 上面这个矩阵的作用就是,如果你要让一个东西在3D中绕y轴旋转一定度数,那么跟上面这个矩阵相乘就行了。 就是还要懂矩阵相乘, 参考这篇文章: Matrix 矩阵,单位矩阵,Transposition,矩阵与矩阵相乘 2.3绕Z轴旋转 上面这个矩阵的作用就是,如果你要让一个东西在3D中绕z轴旋转一定度数,那么跟上面这个矩阵相乘就行了。 就是还要懂矩阵相乘, 参考这篇文章: Matrix 矩阵,单位矩阵,Transposition,矩阵与矩阵相乘 先到这里,转变到游戏引擎中的数学模块就非常简单了,就能理解了。 文章源地址: