03 变换(二维与三维)
变换的应用
●位置移动
●旋转
●缩放
●光栅化成像
二维变换
默认原点、逆时针旋转
齐次坐标
引入齐次坐标原因
引入原因:用矩阵形式描述平移(非线性变换)
二维齐次坐标
二维齐次坐标的表示——增加第三维:
- 向量+向量=向量 (0+0=0)
- 点-点=向量(1-1=0)
- 点+向量=点(1+0=1)
- 点+点=中点(1+1=2 表示中点)
二维仿射变换
仿射变换=线性变换+平移(注意顺序)
逆变换
逆变换——逆矩阵
组合变换
-
复杂变换通过一些列简单变换得到
-
变换顺序很重要——矩阵没有交换律
-
- 向量使用列向量,矩阵统一左乘
- 复合变换矩阵——预处理算出前n项矩阵,得到一个3 * 3 的矩阵
例:
旋转中心不在原点:中心移动到原点->旋转->中心移动到原位置
三维齐次坐标
三维仿射变换
顺序(同二维):先线性变换再平移
缩放和平移
旋转
绕坐标轴
为什么y不同——x-y-z循环:xz叉乘方向与y轴相反。
欧拉角
罗德里格斯旋转公式
- n是旋转轴,α是旋转角度
- 默认轴n过原点——不过原点就移到原点再变换,再移回去
推导:
https://sites.cs.ucsb.edu/~lingqi/teaching/resources/GAMES101_Lecture_04_supp.pdf
https://zhuanlan.zhihu.com/p/336453946