图形学中的线代

261 阅读2分钟

一般将多维量用列向量表示,将梯度向量用行向量表示

所以图形学中的向量默认是列向量

GAMES101 中用右手坐标系

image.png

图形学中一切物体的缩放,旋转,位移,都可以通过矩阵变换得到

坐标系

线性空间

仿射空间

欧式空间

二维线性变换

定义

定义 形式如下 为对向量[公式]的线性变换:

image.png

缩放矩阵

image.png

image.png

剪切力

image.png

image.png

以原点为中心逆时针旋转

image.png

image.png

上面的旋转矩阵的逆矩阵的几何意义:顺时针旋转 (它正交,所以它的逆就是它的转置)

三维线性变换

由二维推三维:

image.png

image.png

旋转

任意的三维旋转都可以分解成 绕 x/y/z 轴旋转

绕 x / y / z 轴旋转

因为使用右手系:

绕z轴逆时针旋转:z不变,由x转向y image.png

绕x轴逆时针旋转:z不变,由y转向z image.png

绕y轴逆时针旋转:y不变,由z转向x image.png

绕任意过原点的轴 u 旋转

image.png

  1. 以 u 为一轴构造三维坐标系 u,v,w
  2. 把 u,v,w 变换到 x,y,z
  3. 应用绕 x 轴旋转的变换矩阵
  4. 再从 x,y,z 变换回 u,v,w(乘以逆矩阵)

齐次坐标&仿射变换

上面一个变换矩阵已经可以表示缩放旋转等线性变换了,但是如果要同时表示平移,需要扩展再一维,如二维点 (x,y) 用 (x,y,1) 表示,此时称为齐次坐标,对应的变换叫仿射变换。

三维同理。从公式中可以看出,会先进行线性变换,再进行位移(xt、yt 不会影响系数)。

二维绕任意点旋转/三维绕任意轴旋转

  1. 把 任意点/任意轴 平移 到原点/过原点
  2. 线性变换
  3. 平移回去