齐次坐标就是把n维向量用n+1维向量表示,例如:
(8, 4, 2) = (4, 2, 1) = (4, 2)
为什么要用n+1维向量表示?
因为变换矩阵
T= |a b|
|c d|
没有平移变换的功能。想要使二维图形产生平移, 必须在变换后的坐标中引入平移量 m、n,即
x' = x + m
y' = y + n
显然,运用
[x' y'] = [x y] * |a b|
|c d|
是无法实现的。为了进行平移变换,要给二维点的位置矢量增加一个附加坐标,使之成为三维行向量[x y l],即用点的齐次坐标表示,这样就可以进行运算了。
比如在直角坐标系中,二维点[x y]
的齐次坐标通常用三维坐标[Hx Hy H]
表示,一个三维点[x y z]
的齐次坐标通常用四维坐标[Hx Hy Hz H]
表示。在齐次坐标系中,最后一维坐标H称为比例因子
。
三维直角坐标与其齐次坐标的关系是:
x = Hx / H
y = Hy / H
z = Hz / H
由于 H 的取值是任意的,所以任一点可用多组齐次坐标表示。在一般使用中,总是将H
设为“1”,以保持两种坐标的一致。