0.理解齐次坐标

参考资料:http://www.songho.ca/math/homogeneous/homogeneous.html
https://mp.weixin.qq.com/s/0QHxvTcH4H072U64uDK_2A

问题:两条平行线可以相交。

在欧氏空间(几何)中,同一平面的两条平行线不能相交,或者不能永远相遇。
但是在投射空间中却不是这样。
在这里插入图片描述
如上图所示,火车铁路在远离眼睛的情况下变得更窄。最后,两条平行的铁路线路在地平线处相遇,这就是无穷远处的一个点。

欧几里得空间(或笛卡尔空间)很好地描述了我们的2D / 3D几何,但它们不足以处理投影空间(实际上,欧几里德几何是投影几何的一个子集)。 2D点的笛卡尔坐标可以表示为(x,y)。

如果这一点远远超出无穷大怎么办? 无穷远处的点将是(∞,∞),并且在欧几里德空间中它变得毫无意义。 平行线应在投影空间中的无穷远处相遇,但在欧几里得空间中不能。

解决方案:齐次坐标

齐次坐标是用N + 1个数表示N维坐标的一种方式。
为了表示2D齐次坐标,我们只需在现有坐标中添加一个附加变量w。 因此,笛卡尔坐标中的点(X,Y)在齐次坐标中变为(x,y,w)。 笛卡尔中的X和Y用x,y和w重新表示齐次;
X = x / w
Y = y / w

例如,笛卡尔坐标系下(1,2)中的点在均匀中变为(1,2,1)。 如果点(1,2)向无穷大方向移动,则它在笛卡尔坐标系中变为(∞,∞)。 并且它在齐次坐标中变为(1,2,0),因为(1 / 0,2 / 0)≈(∞,∞)。 请注意,我们可以在不使用“∞”的情况下表达无穷远处的点了。

为什么称它为齐次坐标

为了从齐次坐标(x,y,w)转换为笛卡尔坐标,我们简单地将x和y除以w;
在这里插入图片描述

转化齐次坐标到笛卡尔坐标的过程中,我们有一个发现,例如:
在这里插入图片描述

你会发现(1, 2, 3), (2, 4, 6) 和(4, 8, 12)对应同一个欧几里德空间的点 (1/3, 2/3),任何标量的乘积,例如(1a, 2a, 3a) 对应 笛卡尔空间里面的(1/3, 2/3) 。因此,这些点是“齐次的”,因为他们代表了笛卡尔坐标系里面的同一个点。换句话说,齐次坐标有规模不变性。

证明:两条平行线可以相交。

有如下方程组:
在这里插入图片描述
我们知道由于C≠D,上述方程没有解。
如果C = D,则两条线相同(重叠)。

让我们在投射空间里面,用齐次坐标x/w, y/w代替x ,y。
在这里插入图片描述

现在,我们有一个解,(x,y,0),因为(C - D)w = 0,∴w= 0.因此,两条平行线在(x,y,0)处相遇,这是无穷远处的点。

齐次坐标在图形学中是一个非常基础的概念,例如3D场景映射到2D场景的过程中。

齐次坐标

“齐次坐标表示是计算机图形学的重要手段之一,它既能够用来明确区分向量和点,同时也更易用于进行仿射(线性)几何变换。”——F.S. Hill, JR

从普通坐标转换成齐次坐标时:
如果(x,y,z)是个点,则变为(x,y,z,1);
如果(x,y,z)是个向量,则变为(x,y,z,0)

从齐次坐标转换成普通坐标时:
如果是(x,y,z,1),则知道它是个点,变成(x,y,z);
如果是(x,y,z,0),则知道它是个向量,仍然变成(x,y,z)

以上通过齐次坐标来区分向量和点的方式。对于平移T,旋转R,缩放S这3个最常见的仿射变换,平移变换只对于点才有意义,因为普通向量没有位置概念,只有大小和方向。旋转和缩放对于向量和点都有意义。

举例而言,对于一个普通坐标的点P=(Px, Py, Pz),有对应的一族齐次坐标(wPx, wPy, wPz, w),其中w不等于零。比如,P(1, 4, 7)的齐次坐标有(1, 4, 7, 1)、(2, 8, 14, 2)、(-0.1, -0.4, -0.7, -0.1)等等。因此,如果把一个点从普通坐标变成齐次坐标,给x,y,z乘上同一个非零数w,然后增加第4个分量w;如果把一个齐次坐标转换成普通坐标,把前三个坐标同时除以第4个坐标,然后去掉第4个分量。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值