齐次坐标的3种理解

1. 区分向量和点

问题:对于一个坐标(1,3,5),你能说出它是一个向量还是一个点?

齐次坐标表示是计算机图形学的重要手段之一,它既能够用来明确区分向量和点,同时也更易用于进行仿射(线性)几何变换。”—— F.S. Hill, JR。
齐次坐标的3种理解
再来看上述问题,向量V=(1,3,5,0), 点P=(1,3,5,1)
像这种这种用4个代数分量表示3D几何概念的方式是一种齐次坐标表示。
斜体样式齐次坐标中的 x 和 y 除以 w 就得到笛卡尔坐标中的 x 和y
齐次坐标的3种理解

2. 解决矩阵平移操作

齐次坐标用于平移
空间中一个点:P = [p1, p2 ,p3]
平移的矢量为T=[t1, t2, t3]
正常的做法就是:P+T=[p1+t1, p2+t2, p3+t3]

如果不引入齐次坐标,单纯采用3X3矩阵乘法来实现平移
你想做的就是找到一个矩阵m,使得
P*m=[p1+t1, p2+t2, p3+t3]
然后你就会发现你永远也找不到这样的矩阵

所以我们需要新引入一个维度令P = [p1, p2 ,p3,1]
我们可以找到一个44的矩阵m实现平移
[1, 0, 0, 0]
[0, 1, 0, 0]
[0, 0, 1, 0]
[t1, t2, t3, 1]
即P
m=[p1+t1, p2+t2, p3+t3,1]

3. 两条平行线会相交

在欧几里得几何空间里,两条平行线永远都不会相交。但是在投影空间中,如右图中的两条铁轨在地平线处却是会相交的,因为在无限远处它们看起来相交于一点。
齐次坐标的3种理解
在欧几里得(或称笛卡尔)空间里描述2D/3D 几何物体是很理想的,但在投影空间里面却并不见得。 我们用 (x, y) 表示笛卡尔空间中的一个 2D 点,而处于无限远处的点 (∞,∞) 在笛卡尔空间里是没有意义的。投影空间里的两条平行线会在无限远处相交于一点,但笛卡尔空间里面无法搞定这个问题(因为无限远处的点在笛卡尔空间里是没有意义的),因此数学家想出齐次坐标这个点子来了。
例如:笛卡尔坐标系下(1,2)的齐次坐标可以表示为(1,2,1),如果点(1,2)移动到无限远处,在笛卡尔坐标下它变为(∞,∞),然后它的齐次坐标表示为(1,2,0),因为(1/0, 2/0) = (∞,∞),我们可以不用”∞"来表示一个无穷远处的点了。
证明:两条直线可以相交
考虑如下方程组:
齐次坐标的3种理解
我们知道在笛卡尔坐标系里面,该方程组无解,因为C ≠ D,如果C=D,两条直线就相同了。
让我们在透视空间里面,用齐次坐标x/w, y/w代替x ,y,
齐次坐标的3种理解
现在我们有一个解(x, y, 0),两条直线相交于(x, y, 0),这个点在无穷远处。

4. 补充

齐次性是英文 Homogeneous 的中文翻译,用来描述具有相同“memmber or part”的一组事物。也就是一组类似,具有相同属性的东西叫做齐次性。
2D的一个点(2,4),用齐次坐标表示就是(2,4,1)(4,8,2)(6,12,3)等等,他们都具有同一个性质,即他们可以投影到w=1平面上的同一个点处
因此,给定一个2D点(x,y),齐次空间有无数多个点与之对应(wx,wy,w),这些点构成一条穿过齐次原点的直线。

参考:
https://www.zhihu.com/question/26655998/answer/43847213
https://blog.csdn.net/janestar/article/details/44244849
https://www.cnblogs.com/kesalin/archive/2009/09/09/homogeneous.html
https://www.zhihu.com/question/25552461/answer/111576476
https://zhuanlan.zhihu.com/p/110503121
非商业用途,如有侵权,请告知我,我会删除!