2.2 2D投影平面
众所周知,平面中的一个点可以用IR2中的坐标对(x,y)表示。 因此,通常用IR2识别平面。 将IR2视为向量空间,坐标对(x,y)是向量 - 将点标识为向量。 在本节中,我们将介绍平面上点和线的齐次坐标表示方法。
行向量和列向量
我们考虑向量空间之间的线性映射,并将这些映射表示为矩阵。
通常情况下,矩阵和向量的乘积是另一个向量,这个像被我们称为映射下的像。
相信大家应该在线性代数学过像与原像的概念
这引出了“列”和“行”向量之间的区别,因为矩阵可以在右侧乘以列向量而在左侧乘以行向量。
例如:
[acbd][cd]
[cd][acbd]
默认情况下,几何实体将由列向量表示。 诸如 x 的粗体符号总是表示列向量,并且其转置是行向量xT。 根据惯例,平面中的点将由列向量(x,y)T表示,而不是其转置,行向量(x,y)。 我们记x=(x,y)T,该等式的两边代表列向量。
点和线
线的齐次表示
平面中的线由诸如ax+by+c=0的等式表示,a,b和c的不同选择产生不同的线。因此,线可以自然地由向量(a,b,c)T表示。
线和向量(a,b,c)T之间的对应关系不是一对一的,因为对于任何非零常数k,线ax+by+c=0和(ka)x+(kb)y+(kc)=0是同一条直线。 因此对于任何非零k,向量(a,b,c)T和k(a,b,c)T表示相同的线。
实际上,通过整体缩放相关的两个这样的向量被认为是等价的。 在这种等价关系下的等价类向量被称为齐次向量。 任何特定的向量(a,b,c)T都是等价类的代表。IR3中的向量等价类集合 - (0,0,0)T形成投影空间IP2。 符号-(0,0,0)T表示排除了与任何行不对应的向量(也就是没有一条直线可以通过这个向量表示)。
点的齐次表示
当且仅当ax+by+c=0时,我们可以说,点x=(x,y)T位于线l=(a,b,c)T上。这可以用表示向量的内积来表示点,即(x,y,1)(a,b,c)T=(x,y,z)l=0; 也就是说,IR2中的点(x,y)T通过加最后一维坐标为1从而表示为三维向量。
注意,对于任何非零常数k和线l,等式(kx,ky,k)l=0当且仅当(x,y,z)l=0时,因此,考虑k的变化值的向量集(kx,ky,k)T是在IR2中的点(x,y)T的表示。
因此,正如线一样,点也可以由齐次矢量表示。
表示点的任意齐次向量具有x=(x1,x2,x3)T的形式,表示在IR2中的点(x1/x3,x2/x3)T。
因此,作为齐次矢量的点也是IP2的元素。
一个有一个简单的方程来确定一个点何时在一条线上,即
结论1 点x在直线l上当且仅当xTl=0
值得注意的是xTl是两个向量x和l的内积或标量积,即xTl=lTx=x⋅l。
一般我们更喜欢lTx,偶尔也会用⋅去表示内积。
要注意,我们把x=(x1,x2,x3)T称为点的齐次坐标,这是三维矢量。把(x,y)T称为非齐次坐标,这是二维矢量。
自由度
为指定一个点,我们必须提供两个值,就是它的x−坐标和y−坐标。那么对于直线呢?这里一条直线,也是由两个参数指定(两个独立的比率{a:b:c}),因而有两个自由度。
有人疑惑道,这不是三个未知的参数么,怎么会说是两个自由度。这里,我们可以把c看成是已知量,即为1。考虑到前面说的齐次坐标的等价性。我们可以把表示直线的(a,b,c)T化成等价的齐次坐标表达(a/c,b/c,1)T,这里值得注意的是其中c不等于0才会成立。当然了,我们这里是取c不等于0为例子。前面的意思是这两个独立的比率是两两之间的,只要存在两个比率,就能确保出a,b,c三个数字,这两个比率就是自由度。
我们可以知道的是,在非齐次坐标中,两个参数可以取为直线的梯度和y轴上的截距,即所谓的斜截式方程。
其中m就是斜率,也就是a与b的比值,c是截距,即在y轴上的截距。
直线的交点
给定两直线I=(a,b,c)T和I′=(a′,b′,c′)T,我们希望找到它们的交点。 定义向量x=l×l′,其中×表示向量积或叉积。
由三重纯量积等式:l⋅(l×l′)=l′⋅(l×l′),可以推算出lTx=l′Tx=0。
因此,如果x被认为是一个点, 然后x位于线l和l′上,因此是两线的交点。 由此可见:
结论2 两直线 l 和 l′ 的交点是点x=l×l′
注意,对于两条线的交点,该表达式之所以简洁是因为使用线和点的齐次矢量表示的结果。
小例子1
求直线x=1和y=1的交点.直线x=1等价于−1x+1=0,故而有齐次表示l=(−1,0,1)T。直线y=1等价于−1y+1=0,齐次表示是l′=(0,−1,1)T,通过结论2,我们可以得到两个的交点为:
x=l×l′=∣∣∣∣∣∣i−10j0−1k11∣∣∣∣∣∣=⎝⎛111⎠⎞
它是非齐次坐标点(1,1)T,正是所求的。
点的连线
过两点x和x′的直线表示式可以完全类似推导出。定义直线l=x×x′,很容易验证得点x和x′都在直线l上。
小证明 我们可以知道,三重纯量积等式:x⋅(x×x′)=x′⋅(x×x′)=0,假设定义矢量l=x×x′,很容易得到。xTl=x′Tl=0,如果把l看成一条直线,则可以知道点x和x′都在这条直线上,将这两点连线就是直线l,因而得证。
结论3 过两点 x和 x′的直线是 l=x×x′
理想点和无穷远线
平行线的交点
考虑两条平行线ax+by+c=0和ax+by+c′=0。它们可以用矢量l=(a,b,c)T和l′=(a,b,c′)T表示,其中它们前两个坐标一样。由结论2可以得到两条直线的交点是l×l′=(c′−c)(b,−a,0)T,忽略标量因子(c′−c),得到点(b,−a,0)T。
如果试图得到该点的非齐次表示,就会得到(b/0,a/0),只能解释为无穷大坐标。一般具有齐次坐标(x,y,0)的点不与IR2。这一观察与通常平行线交于无穷远概念吻合。
小题目
考察两直线x=1和x=2。两线平行所以交于“无穷远点”.利用齐次坐标表示则为l=(−1,0,1)T和l′=(−1,0,2)T。再有结论2可以得到:
x=l×l′=∣∣∣∣∣∣i−1−1j00k12∣∣∣∣∣∣=⎝⎛010⎠⎞
这是在y轴上的无穷远点。
理想点与无穷远线
当x3̸=0时,齐次矢量x=(x1,x2,x3)T对应于IR2的有限点。我们把最后坐标为x3=0的点加入IR3。所扩展的空间是所有齐次3D矢量的集合,称为射影空间IP2。
关于射影空间和欧氏空间,查看博主的这篇博文,无处不在的射影空间。
最后只需要记住,最后一维坐标x3=0的点被我们称为理想点,或无穷远点。
所有理想点的集合写成(x1,x2,0)T,并由比率x1:x2指定一个具体的点。
这个集合是在一条直线上,我们称为无穷远线。用矢量l∞=(0,0,1)T表示。可以验证,(0,0,1)(x1,x2,0)T=0
由结论2可以知道,直线l=(a,b,c)T与l∞交于理想点(b,−a,0)T(因为(b,−a,0)l=0)。任何与l平行的线l′=(a,b,c′)都会与l∞交于同一理想点(b,−a,0)T,而与c′取值无关。
非齐次表示下,(b,−a)T是直线相切的矢量,与直线法线(a,b)T正相交,因而它代表直线的方向。
当直线方向改变,理想点(b,−a,0)T也会沿着l∞变化。基于此,无穷远线被看做平面上所有直线方向的集合。
引入无穷远点概念将与直线相交的概念简化。
在射影平面IP2中,两条相异直线都相交于一点而任意两个相异的点都在一条直线上。这在标准欧式几何IR2中不成立,平行线就是特例。
射影几何中,无穷远点(理想点)和普通点无区别,为了区分,我们将无穷远线看成射影空间的一条特殊直线。
射影平面的模型
将IP2看成IR3中一种射线的集合。集合中所有矢量k(x1,x2,x3)T当k变化时形成过原点的射线。这样的射线在IP2却是一个点。
在此模型中,IP2中的直线是过原点的平面,可以验证两相异的射线共处在一张平面上,而任何两个相异平面总相交于一条射线。
两个相异点确定一条直线,而两个相异直线总交于一点。
点与线可以用平面x3=1与这些射线和平面集相交得到,如图1所示,理想(无穷远)点的射线和表示I∞的平面都与x3=1平行。
图1,射影平面模型:IP2中的点和线分别表示为IR3中过原点的射线和平面。x1x2所构成的平面,该平面上面的射线表示理想点,即无穷远点。该平面也被称为I∞
在上面的图像中,两个点分别是两条过原点的射线,而这两条射线在原点处相交,两条射线和原点构成的平面σ则是在射影空间中表示为一条直线,而且是过这两个点的直线。图像平面π则是x3=1的平面。当x3=1的平面与前面所述的平面σ相交时,得到了直线 l 则是表示该直线的齐次坐标表示,而且最后一维的坐标x3=1。而且l在σ上。当我们变换l上的x3坐标,则构成的就是平面σ,也就是l的同等齐次表示的线集合。
对偶(Duality)
直线与点的基本关联方程式lTx=0是对称的。因为lTx=0意味着xTl=0。其中点和线位置互换。所以结论2和3中点线作用互换,本质一样。因此引出一个定理:对偶原理(duality principle)。
结论4 对偶原理 二维射影几何中任何定理都有一个对应的对偶定理,它可以通过互换原定理中的点和线作用而导出。
一旦原定理被证明,则无需证明其对偶。对偶证明不过是原定理证明的对偶。
二次曲线和对偶二次曲线
二次曲线由平面上二次方程描述。在欧式几何中,二次曲线主要有三类:双曲线(hyperbola), 椭圆(ellipse), 和抛物线(parabola,后面将定义的所谓退化二次曲线除外)。
经典理论中,三类曲线是不同方向的平面与圆锥相交所产生的截线(退化的二次曲线由过锥顶的平面产生)。在2D射影几何中,所有非退化二次曲线在射影变换下都等价。
1是抛物线,2是圆和椭圆,3是双曲线
齐次坐标中的二次曲线方程是
ax2+bxy+cy2+dx+ey+f=0
对应于一个二次多项式。
通过替代x↦x1/x3,y↦x2/x3,”齐次化“得到:
ax12+bx1x2+cx22+dx1x3+ex2x3+fx32=0(1)
或表述为矩阵形式
xTCx=0
其中二次曲线系数矩阵C为
C=⎣⎡ab/2d/2b/2ce/2d/2e/2f⎦⎤
注意这个二次曲线的系数矩阵C是对称矩阵。标量乘法不影响上面方程,所以该矩阵是一条二次曲线的齐次表示。
二次曲线有五个自由度,可视为比率a:b:c:d:e:f或等价地视为对称矩阵六个元素减去比例因子。
五点定义一条二次曲线
求过点集xi的二次曲线,如何确定该二次曲线?我们可以从式(1)看出,每一个点xi都给二次系数一个约束,即如果二次曲线过点(xi,yi)T,那么
axi2+bxiyi+cyi2+dxi+cyi+f=0
我们把这个约束重新成两个向量的内积,即
(xi2xiyiyi2xiyi1)c=0
其中c=(a,b,c,d,e,f)T是把二次曲线C表示成一个六维矢量。
说不定有人联系到了叉乘和反对称矩阵的互相转换,不过这里是对称矩阵而非反对称。
我们知道方程式中有五个未知数(自由度6维有一个是比例因子可以忽略),需要的是五个不同的关于该未知数的等式联立才能求解。
所以我们需要在集合xi中找到该曲线过的五个点,然后将约束堆积起来则得到:
⎣⎢⎢⎢⎢⎡x12x22x32x42x52x1y1x2y2x3y3x4y4x5y5y12y22y32y42y52x1x2x3x4x5y1y2y3y4y511111⎦⎥⎥⎥⎥⎤c=0
因此二次曲线是5×6矩阵的零矢量(回亿一下矩阵方程式求解【博文系列已描述过线性代数矩阵运算相关】,零空间,相当于Ax=0)。
这个式子表明了一条二次曲线是由一般位置的五点唯一确定(相差尺度因子)。
二次曲线的切线
在齐次坐标系,求过点x的二次曲线的切线l。
结论5 过(非退化)二次曲线 C 上点 x 的切线 l 由 l=Cx 确定。
证明
假设l=Cx成立,所以lTx=xTCx=0,若能证明直线l仅与二次曲线交于一点,那么它就是切线。否则若还能交于另一个点y,则有yTCy=0和xTCy=lTy=0。
所以我们有
xTCx+xTC(αy)+(αy)TCx+(αy)TC(αy)=0
⇔(xT+(αy)T)(Cx+C(αy))=0
⇔(x+αy)TC(x+αy)=0
对于所有α成立,这表明连接x和y的整条直线l=Cx就在该二次曲线C上,则C是退化的(后面有描述)。
对偶二次曲线
上面的二次曲线C被确切称为点二次曲线,因为定义的是点的方程。由结论4的对偶定理可知,应当有由直线方程定义的二次曲线。
这种对偶(或线)二次曲线也由一个3×3矩阵表示,被记为C∗。即二次曲线C的切线l满足lTC∗l=0。其中C∗表示为C的伴随矩阵,即C∗=det(C)C−T。对非奇异对称矩阵C有C∗=C−1。
当C满秩时,对偶二次曲线方程可直接推导:由结论5得到过C上的点x的切线是l=Cx,换句话说直线l与C相切与点x,其中x=C−1l。
由于xTCx=0所以(C−1l)TC(C−1l)=lTC−1l=0,因为C是对称的所以C−T=C−1,所以得到最后的结果。
对偶二次曲线也称为二次曲线的包络(conic envelopes)包络线(中文维基),由图2说明。对偶二次曲线有五个自由度,与点二次曲线类似,由一般位置上的五条直线定义一条对偶二次曲线。
图2。(a) 满足xTCx=0的点x在一条点二次曲线上。(b)满足lTC∗l=0的直线l是点二次曲线C的切线,即二次曲线C是直线l的包络。
关于包络,下面是维基百科的一种动图,很形象。
退化的二次曲线
非满秩矩阵C所定义的二次曲线被才称为退化二次曲线,退化的点二次曲线包含两条线(秩为2)或一条重线(秩为1)。
退化的线二次曲线包含两个点(秩为2)或一个重点(秩为1)。例如,线二次曲线C∗=xyT+yxT的秩为2,并且由一切过点x或y的直线组成。
注意对非可逆矩阵而言,(C∗)∗̸=C。
图像来源于维基百科,维基百科认为,如果把二次曲线的定义改成平面与对偶二次曲线在三维空间中的交点。如果平面穿过圆锥的定点,则二次曲线是退化的二次曲线。
实际上,退化的二次曲线可以是两条线,可以是平行的也可以是不平行的两条线,还可以是一条线(可以是两条重合的线或者一条线和无穷远线的结合),还可以是一个点(实际上两个复共轭线,目前为止我们不会讨论复平面,所以可以说在本系列博文来说,退化二次曲线是前两类)。
小题目
二次曲线
C=lmT+mlT
由l和m两线组成。l上的点满足lTx=0,因而在二次曲线上,由于xTCx=(xTl)(mTx)+(xTm)(lTx)=0。类似地,mTx=0同样满足xTCx=0。
矩阵C是秩为2的对称矩阵,它的零矢量为x=l×m,它是和m的交点。
博文总结和内容概览
结论
| 结论名 |
结论内容 |
| 点在直线上 |
点x在直线l上当且仅当xTl=0
|
| 直线求交点 |
两直线 l 和 l′ 的交点是点x=l×l′
|
| 过两点的直线 |
过两点 x和 x′的直线是 l=x×x′
|
| 对偶原理 |
二维射影几何中任何定理都有一个对应的对偶定理,它可以通过互换原定理中的点和线作用而导出。 |
| 非退化二次曲线的切线 |
过(非退化)二次曲线 C 上点 x 的切线 l 由 l=Cx 确定。 |
应记内容
| 知识点 |
内容 |
| 直线方程 |
ax+by+c=0 |
| 直线的齐次表示 |
(a,b,c)T,k(a,b,c)T |
| −(0,0,0)T |
不与(0,0,0)T任何直线对应 |
| 点的齐次表示 |
(x,y,1)T,k(x,y,1)T,(x1,x2,x3)T |
| 理想点 |
∀(x1,x2,x3),x3=0,x1,x2不全为0 |
| 射影空间IP2
|
IR3−(0,0,0)T中矢量等价类集合 |
|
IP2的点 |
IR3中是经过原点的射线 |
|
IP2的直线 |
IR3中的平面 |
| 二次曲线方程式 |
axi2+bxiyi+cyi2+dxi+cyi+f=0 |
| 二次曲线系数矩阵 |
C=⎣⎡ab/2d/2b/2ce/2d/2e/2f⎦⎤ |