Lecture3:Transformation
- 今日内容
- 为什么学习变换
- 二维变换:旋转,缩放,切变
- 齐次坐标的概念和目的
- 变换组合
- 三维变换
为什么学习变换?
- modeling 模型变换 与 viewing 视图变换
- 动画效果需要大量变换
- 从三维到二维的投影变换——人眼的成像方式
二维变换
- Scale 缩放变换
- Reflection 反射/对称
- Shear 切变
- Rotate 旋转(默认CCW逆时针,origin原点)
- 旋转公式针对特殊点进行推导
- 线性变换=可以写成矩阵形式(对于相同维度)
齐次坐标
- 为什么要用到齐次坐标:因为平移变换
- 写不成矩阵形式,只能加一个矩阵
- 平移变换不属于线性变换
- 但是我们不想把平移当成一种特殊情况,那该怎么办
- 能不能把缩放、平移、旋转、切变表示成一种形式?
- 可以,但是有代价,要trade-off,没有免费的午餐
- 解决措施:
- 对于点,多出的一项是1
- 对于向量,多出的一项是0
- 如果对于点多出的一项是w,就把所有项除以w,还是一个点
- 而实际上点加点在齐次坐标中表示的是中点
- 仿射变换 Affine Transformations
- 二维仿射变换的情况下,最后一行是 0 0 1
- 逆变换
- 在数学上对应于乘以变换的逆矩阵
- 变换的组合
- 怎么做上图?
- 先平移再旋转?先旋转再平移?矩阵乘法不满足交换律,变换顺序很重要!
- 对于向量矩阵应当左乘
- 概念的推广
- 变换的分解
- 默认以原点为中心旋转
- 要以任意点为中心?先移到原点去,旋转,再移回来
- 要以任意点为中心?先移到原点去,旋转,再移回来
三维变换
- 先平移还是先线性变换?
- 实际上是先线性变换,再平移
- 理解齐次坐标,从为什么到如何?