齐次坐标(Homegeneous Coordinates)
在学习齐次坐标之前,我们要先好奇的问一下,为什么要学习齐次坐标。上一节课,我们学习了变换的三种基本形式:旋转,缩放,和切变。但是还有一种特殊的变换:Translation(平移变换)
从上边的图中我们可以看到左边的图x在x方向移动后变成了Tx, y在y方向移动变成了Ty,变成了右边的图。我们可以用一种简单的代数来表达:
虽然上边的表达看似简单,但是学过矩阵后,我们思考一下,是否可以把上边的平移依然可以像上节课的公式那样写成某一个变换矩阵x 向量(x,y)?
我们会发现,不能。而我们只能写成下面这样一种形式:
因为X' 需要变成ax+by+一个常量,Y'变成bx+cy+一个常量。这种常量的引入,导致平移变换没办法用一个矩阵乘以一个向量的公式来表达。为了统一平移变换跟其他三种变换用一种表达式来表达,人类发明了一种方法:可以通过多添加一个维度,来对齐,统一各种变换。
那么用齐次坐标来表示,针对2D空间中的一个点,可以写成这样一个平移公式:
在二维里,一个点和向量可以增加一个维度来表示。
上边的公式,会发现,2D空间中的一个点,我们通过增加第三个维度,多了一个1,或者0