🔺 变换
这里的每个动作都是单个矩阵,而把动作串起来就意味着矩阵相乘。上面的数字就是这个乘积,由滑块计算得出。
35°
1.50
1.00
0.00
0.00
0°
0.00
0.00
100%

关于几何变换

几何变换是一条把平面上每个点送往别处的规则。我们熟悉的变换构成一个简短的清单:不旋转地滑动整幅图像、让它绕一个固定点旋转、关于一条直线翻转、放大或缩小它,以及把它向一侧推,使正方形变成倾斜的平行四边形。前三种恰好保持所有距离不变,被称为刚体运动:经过其中之一移动的图形与原图全等,这正是学校几何说两个三角形“相等”时的意思。放大会保持所有角度和所有比值,但不保持实际大小,得到的是相似而非全等的图形。

两个事实把这件事从一份技巧清单变成了一门学问。第一,先做一种变换再做另一种变换,总是得到同一类的变换,所以它们可以像数一样在乘法下组合:关于相交直线的两次反射构成一次旋转,关于平行直线的两次反射构成一次平移,而旋转后再放大又是一次带放大的旋转。第二,顺序很重要:先旋转一个图形再拉伸它,与先拉伸再旋转,最终得到的结果不同。菲利克斯·克莱因就是基于这一思想建立了他 1872 年的纲领,把一种几何定义为研究在选定的一族变换下什么保持不变,于是欧几里得几何、仿射几何和射影几何就成了从不同高度看到的同一门学科。

实际的好处是,这些动作中的每一个都可以写成一个小小的数表,并同时应用于数百万个点。这正是图形处理器赖以生存的工作:动画的每一帧、地图的每一次平移、CAD 程序中模型的每一次旋转,都是应用在坐标网格上的这样一个数表。再加上一行一列额外的数,使平移也能放进同一个数表——这一技巧称为齐次坐标——就使得一整串动作可以化简为一次乘法,这也是机器人学、计算机视觉和 3D 图形都使用同一种代数语言的原因。