中EN
← 全部标签

# 旋转

4 篇页面

页面

图形学着色器二维矩阵变换2D Matrix Transforms in Shaders在片元里「移动形状」其实是移动坐标系:平移加向量;旋转与缩放用 mat2 乘到坐标上。绕画布中心变换时,要先把空间挪到原点、变换、再挪回。矩阵乘法顺序有关;同一套矩阵也可拿来做 YUV↔RGB 等颜色空间线性变换。游戏数学四元数Quaternion单位四元数可以紧凑地表示任意三维旋转,与轴-角表示互相转换很简单,并能做稳定、匀速的朝向插值(slerp),这些都是欧拉角做不好的。它可以高效地转换为矩阵以便与其他变换合并。游戏数学旋转表示的比较Comparison of Rotational Representations旋转可以用欧拉角、3×3 矩阵、轴角、四元数表示,再加上平移与缩放就有 4×4(或 4×3)矩阵与 SRT(SQT)变换;更进一步还有对偶四元数。没有一种在所有场合都最好。GEA 按大小、直观性、能否直接作用于向量、能否插值、有无万向节锁比较它们,并用「参数个数 − 约束个数 = 3 个自由度」统一解释为什么它们用的浮点数不同。游戏数学欧拉角与万向节锁Euler Angles & Gimbal Lock欧拉变换用 head(yaw)、pitch、roll 三个角度构造朝向矩阵,直观、易于用日常语言讨论,适合小角度调整和观察者朝向。但它依赖旋转顺序,两组欧拉角难以组合和插值,并且会出现万向节锁,因此更复杂的朝向处理需要四元数。

输入关键词开始搜索

滚轮或双指缩放 · 拖动平移 · 双击放大 / 还原