关键点
- Affine Transformation (Linear Transformation, Transmation)
- Homogeneous coordinates
- Composite Transform
- 2D and 3D
1. Linear Transformation (2D for instacnce)
1.1 Scale
Reflection
1.2 Shear
1.3 Rotate
默认以原点为中心逆时针。
1.4 总结:Linear Transformation
2. Homogeneous coordinates 齐次坐标 (2D for instacnce)
2.1 Translation
可见Translation不是线性变换,由此引入齐次坐标来获得统一的transformation表示方法。但是,齐次坐标带来了新问题。
2.2 Homogeneous coordinates
增加一个维度,来表示点或者向量,点的新维度值为1,而向量为0:
那么,点的平移变换也可以写作线性变换形式;同时,保证了向量的平移不变性:
进一步的,可以保证空间中的点或向量运算的法则:
其中,对于新坐标w不为0或1,需要变换成1获得点的标准形式。因此,对于点的加法,或者说w=2,可以看作2个点的中点。
2.3 Affine Transformation 仿射变换
2.3.1 使用齐次坐标来表示仿射变换:
在二位情况下的规律为,左上角2x2矩阵为线性变换矩阵,右上角2x1矩阵为平移,最下面一行是[0,0,1]:
2.3.2 代价
- 点或者向量表示多了一个维度,且变换矩阵增加三个值,但是对于二维仿射变换,最下面一行是确定的,所以不需要保存。
3. Inverse Transform (2D for instacnce)
4. Complex Transform (2D for instacnce)
4.1 Composite Transform
- 复杂变换可以由一系列简单变换得到。
- 矩阵乘法不满足交换律(对顺序敏感):对于列向量表示的点,放在变换矩阵的右侧,相应的先进行的变换对应的变换矩阵在右侧。
- 矩阵乘法满足结合律:所有复杂变换都可以用一个3x3变换矩阵表示。
- 任意一个变换矩阵可以视作两部分操作:先进行复杂或者简单的线性变换,最后进行平移。这个可以从仿射变换的定义的到。
4.2 Decomposing Complex Transform
- 可以实现绕任意轴或点的旋转变换:
5. 3D Transforms
5.1 Homogeneous Coordinates
5.2 Transformations
对于3D仿射变换,与2D情况一致:最后一行为[0,0,0,1],左上角为线性变换,右上角为平移。