一般将多维量用列向量表示,将梯度向量用行向量表示
所以图形学中的向量默认是列向量
GAMES101 中用右手坐标系
图形学中一切物体的缩放,旋转,位移,都可以通过矩阵变换得到
坐标系
线性空间
仿射空间
欧式空间
二维线性变换
定义
定义 形式如下 为对向量的线性变换:
缩放矩阵
剪切力
以原点为中心逆时针旋转
上面的旋转矩阵的逆矩阵的几何意义:顺时针旋转 (它正交,所以它的逆就是它的转置)
三维线性变换
由二维推三维:
旋转
任意的三维旋转都可以分解成 绕 x/y/z 轴旋转
绕 x / y / z 轴旋转
因为使用右手系:
绕z轴逆时针旋转:z不变,由x转向y
绕x轴逆时针旋转:z不变,由y转向z
绕y轴逆时针旋转:y不变,由z转向x
绕任意过原点的轴 u 旋转
- 以 u 为一轴构造三维坐标系 u,v,w
- 把 u,v,w 变换到 x,y,z
- 应用绕 x 轴旋转的变换矩阵
- 再从 x,y,z 变换回 u,v,w(乘以逆矩阵)
齐次坐标&仿射变换
上面一个变换矩阵已经可以表示缩放旋转等线性变换了,但是如果要同时表示平移,需要扩展再一维,如二维点 (x,y) 用 (x,y,1) 表示,此时称为齐次坐标,对应的变换叫仿射变换。
三维同理。从公式中可以看出,会先进行线性变换,再进行位移(xt、yt 不会影响系数)。
二维绕任意点旋转/三维绕任意轴旋转
- 把 任意点/任意轴 平移 到原点/过原点
- 线性变换
- 平移回去