【高等几何】03 - 射影变换
1. 增补仿射空间
1.1 点透视的启发
在第一篇中说到,圆锥面对于不同平面的截面构成了我们熟悉的二次曲线(圆、椭圆、抛物线、双曲线),因此它们也被称为圆锥曲线。至于为什么会是这样,最直观的证明就是著名的丹德林(Dandeline)双球模型。上一篇中圆柱截面为椭圆的证明,放在圆锥中依然适用。下图则演示了截面为双曲线的情况,依据中学对二次曲线的定义(椭圆为固定线段和,双曲线为固定线段差),很容易看出结论(抛物线视为特殊椭圆)。当然这个证明不是本课程要关心的,现在我们来换个观察角度。
同一个圆锥面被不同平面截出一系列迥异的曲线(甚至包括单点、重叠直线、相交直线、平行线),就好比是一簇光线在不同平面上的投影,它们之间必然有着内在的联系。这也正如人们在透视画法中发现的,不同角度的画虽然有各种程度扭曲,但它们仍然保留了原像图形的诸多性质,比如直线以及直线间的关系基本没有改变。以上点透视模型只是一个直观描述,但它对我们的深入讨论有两个至关重要的启发:(1)平面间的投影究竟是怎样的几何变换?(2)光线簇与投影的不变性质有怎样的关联?
第一个问题是把平面作为研究对象,把模型中的不同平面重叠起来,透视映射就表现为平面上点的某种变换,我们需要将其扩展为完整的变换群、并用更精确的数学语言来描述它。第二个问题非常关键,它提醒我们平面上的投影不变性可以放到高一维的空间、以研究线束来代替研究图形,也许能得到更简洁更本质的方法!上一篇的仿射几何受到了平行透视的启发,定义了单比不变的几何变换,这里则提出了更一般的点透视模型。按照纲领的思路,我们先要找到那些关键的透视不变性,以抽取出新几何的元素和特征。
1.2 无穷远元素
不过在回答这两个问题之前,我们需要先解决模型中的一点残缺遗憾。继续考察空间中以点\(O\)为光源(射影中心或射心)的透视模型,并以任意不过\(O\)的平面\(\alpha\)为投影面,这时除了与\(\alpha\)平行的光线(过\(O\)的直线)外,光线簇和平面上的点形成一一对应。不仅如此,那些在同一平面(不与\(\alpha\)平行)的所有光线(除去与\(\alpha\)平行的一条),在\(\alpha\)上还投影出一条直线(反之亦成立)。无论\(\alpha\)换成哪个平面,与之平行的光线总使得映射关系存在缺憾,这就促使我们扩展空间的点,以使得一一对应完全成立。
扩展后的空间中,投影面要以光线簇为原象,不仅点与所有光线一一对应,而且共面的光线要投影为一条直线。具体要求则是:任一光线与所有投影面有且仅有一个交点,同一平面的光线总是投影出一条直线,两个光线面(相较于一条光线)总是投影出两条相交直线。考虑与\(\alpha\)平行的光线\(p\),设它们交于一个虚拟点\(P_\infty\)。观察所有经过\(p\)的光线平面,它们在\(\alpha\)上的投影是一簇\(p\)的平行线,从而它们与\(p\)都相交于唯一点\(P_\infty\)。这个特点可以轻松推广到整个空间,即所有与\(p\)平行的直线都相交于唯一点\(P_\infty\)。这在本质上消除了平行的概念,即新空间中的直线要么异面、要么相交于唯一点。
据此便得到了最小的扩展空间:在欧几里得空间中,为每个平行线簇增补一个共同交点,直觉上也叫无穷远点。每一条光线都有唯一的无穷远点,不同光线的无穷远点不相同。在细致讨论无穷远点的性质之前,请不要忘记,这一切的动机都来自透视模型,由此光线簇既是一般的直线集合,更是理论来源。扩展后的空间在任一平面的性质,应当与原象(光线簇)保持一致。比如所有普通直线都有唯一无穷远点,直线两端就好像在无穷远点处相接,从而变成了一个大环,这就对应到光线的圆周辐射。再比如共面光线的投影应当总是一条直线,而任何普通平面的无穷远点是与之平行的光线的投影,由此可视为一条直线,直觉上也叫无穷远直线。
进一步地,任取两个无穷远点,其对应光线确定唯一的光线平面,所以它们就确定了唯一的无穷远直线。最后,任意两条无穷远直线代表了两个相交普通平面(或两个不同光线平面),总是相交于某一无穷远点。由此所有无穷远点都可以视为在同一平面上,直觉上也叫无穷远平面,记作\(\pi_\infty\)(无穷元素一般都使用\(\infty\)下标)。这时再来看平行透视模型,其实就是无穷远点的点透视模型(无穷远点还对应无穷远点),两种透视模型在增补了无穷远平面后统一起来,平行透视只是一种特殊的点透视。
最后请注意,透视模型的讨论不光在欧氏空间成立,它同样没有离开仿射几何的范畴,而它是欧氏几何的父几何。所以我们把无穷远平面的增补说成是在仿射空间中,增补后的空间仍然叫仿射空间,对应的点线面则叫仿射点、仿射直线、仿射平面。只要把以前的“平行”“相交”替换成“相交于无穷远点”“相较于普通点”,所有的讨论在语言上都没有困扰(无穷元素在仿射几何里是特殊元素)。当然由于欧氏几何是特殊的仿射几何,往后提到它也是增补了无穷远平面的。下面就在这新定义的仿射空间下,研究透视映射(中心射影)的不变性质。
2. 射影变换
2.1 交比
相比仿射变换,仿射空间的中心射影的不变量少了很多,如果不增补无穷平面,甚至连同素性都保不住。幸好在扩展后的仿射空间里,仿射点(直线、平面)仍然对应仿射点(直线、平面),所以中心射影具有同素性。另外仿射空间元素之间的关联变得更加简单:两点确定一直线;两共面直线交于一点;直线与外一点确定一平面;两平面交于一直线;直线与平面交于一点。这些特点都是透视模型自带的,你不必一个个去证明,而且这些关系也透视不变,所以中心射影还具有关联性。对比仿射变换的三个性质,还有一个单比不变显然不再成立,甚至看到连顺序性都被打破了,直线在度量上难道就没有约束了吗?
还是回到欧氏空间的透视模型,如果直线上点的关系存在不变量,猜想一定可以表示为对应透视线的关系。比如在平行透视中(仿射对应),单比其实就是对应平行光线的距离比。而如果是普通透视点,光线之间不变量应当只与角度有关,为此先定义平面上直线\(a\)到\(b\)的角度为:从\(a\)的一条射线顺时针转到\(b\)的角度。这时再来考察单比\((ABC)\),它等于\(\triangle SAC\)和\(\triangle SBC\)的面积比(有正负),再用三角形面积的正弦定理,则有\((ABC)=\dfrac{a\sin(a,c)}{b\sin(b,c)}\)。但要注意,这时单比已经与直线角度的方向选择无关了,顺时针、逆时针统一选一个就可以。
\[(AB,CD)=(ab,cd)=\dfrac{\sin(a,c)\sin(b,d)}{\sin(b,c)\sin(a,d)}\tag{1}\]
为了消除单比\((ABC)\)中的线段\(a,b\)以找到不变量,只需将它除以另一个单比\((ABD)\),结果\((AB,CD)=(ABC)/(ABD)\)只与四条直线\(a,b,c,d\)的夹角有关,它被称为直线上四点的交比,也称为线束中四条直线的交比。需要注意,定义中要求\(b\neq c,a\neq d\)或者\(B\neq C,A\neq D\);当投影线与一条光线平行时,四点交比退化为其它三点的单比(线束的单比没有退化),或者可以把单比视为特殊的交比(第四点为无穷远)。既然交比是单比之比,那一定也是仿射不变量,它可以被定义到仿射空间(线束的交比由点的交比间接定义)。因此切回到仿射空间,交比显然是中心射影的不变量,不管射影中心是无穷远点还是普通点。
2.2 调和共轭
需要注意,交比的值与点的顺序有关,但不难发现\(4!=24\)种排序实质上只有6个不同值,且有着紧密的相关性,你可以利用式(2~4)画出一个清晰的循环六边形。下面将会看到,值为\(-1\)的交比有着非同寻常的意义,此时四点的交比值只有\(-1,2,1/2\)三种情况。其中\((AB,CD)=-1\)的四点只要两点的分组不变,调换字母顺序后的交比都是\(-1\),一般称\(AB,CD\)为互相调和共轭的点偶,每个点都是其它三点的(第四)调和点。同样也有调和共轭的线束偶,以及第四调和线。比较特殊的调和点是无穷远点,它是\(AB\)与中点\(C\)的调和点,对应到线束就是两相交直线与其两个角平分线。
\[(AB,CD)=(CD,AB)=(BA,DC)\tag{2}\]
\[(AB,DC)=1/(AB,CD)\tag{3}\]
\[(AC,BD)=1-(AB,CD)\tag{4}\]
调和点列是最容易作图获得的,基本原理则是构造\((AB,CD)=(BA,CD)\)的点列。如图平面上有三三不共线的四点\(A,B,C,D\),它们两两组合形成3组对边,3组对边交点\(X,Y,Z\)简称对边点,连接对边点形成对边三角形,这样的模型叫完全四点形。以\(X\)为透视中心有\((AB,PZ)=(DC,QZ)\),而以\(Y\)为透视中心又有\((AB,PZ)=(CD,QZ)\),所以\((AB,PZ)=-1\)。更一般地结论则是:完全四点形的六条边和对边三角形的三边,都被对边点透视出调和共轭点。受这个结论启发,很容易用直尺作出已知三点的调和点,比如图中已知\(A,P,B\),任意取直线\(PYX\)并连接\(A,B\)与\(X,Y\),连接交点\(D,C\)与直线\(AB\)交于调和点\(Z\)。
2.3 射影变换
(点列)交比是中心射影的核心不变量,可视为单比的一种扩展,以后就把仿射空间中保持同素性、关联性、点列交比不变性的映射叫做射影对应,而同一空间的射影对应则叫射影变换。中心射影显然是一种射影对应,且有限个中心射影\(\{\varphi_1,\cdots,\varphi_n\}\)的乘积\(\varphi=\prod\varphi_i\)仍然是射影对应。后面还将证明,射影对应总可以表示为一系列(广义的)中心射影之积,这里先给出平面上两直线的射影对应的证明。假定两条射影对应的直线已知3组对应点\(ABC\)-\(A'B'C'\),从\(A'\)引出新的直线并选取射心\(S\)使得\(ABC\)-\(A'B''C''\),然后再选取射心\(S'\)使得\(A'B'C'\)-\(A'B''C''\)。对任意其它射影对应点\(D\)-\(D'\),根据交比不变性可知,\(D\)在\(S\)的像与\(D'\)在\(S'\)的像一定重合于\(D''\),这就将射影对应拆成了两个中心射影的乘积。
平面射影对应还有一些有趣的性质,这里一并介绍完。但务必要交代清楚:它们不仅存在于仿射空间,也同样适用于更一般的射影空间(下篇介绍),因为论证中只涉及到了点线的关联性质和射影对应。后面就不重复这里的证明了,你就权当提前感受一下射影几何的独特视角。让我们继续刚才讨论,如上证明过程中其实已经表明:(1)两条平面直线的射影对应可以由三对不同的点完全确定;(2)两个射影点列如果在交点处自对应,那么射影对应是一个透视对应。一维射影变换是特殊的射影对应,每个点都是象和原象,如果两个不同点\(P,P'\)互相对应,它们称为对合点。这时考察其它点\(S\)的象\(S'\)以及象的象\(S''\),由交比不变\((PP',SS')=(P'P,S'S'')\)以及式(2)可证得\(S,S"\)重合。所以这个变换的所有象和原象都是对合点,这样的非恒等变换也叫对合变换。
• [练习] (笛沙格对合定理)求证:任意不过四点形点的直线,与6条边的3对交点是某个对合变换的对应点。
刚才定义点列交比时,同时也定义了线束交比,并且两者的值由基本模型绑定在一起。其实不难发现,模型中的点列和线束在概念上是完全对等的(以后会详细讨论):点列在一条直线上,线束经过同一点。再加上点列交比和线束交比的相关性,我们有理由把刚才的讨论都平移到线束上,而点列成为了线束透视对应的透视轴。类似的结论有:(1)平面上线束的射影对应总可以拆成两个透视对应的乘积;(2)线束的射影对应由三组不同的对应线完全确定;(3)如果两个线束的中心连线自对应,那么射影对应是一个透视对应;(4)有一对对合线的射影变换是对合变换。同样也有完全四边形、以及对顶线和对顶三角形的概念,图形和完全四点形几乎一样,只是把点线互换、点列线束互换。
2.4 定理举例
综合一维透视对应的性质,在点列和线束间传递透视关系,还能得到平面几何上不少有趣的点线关联性质。比如分别以点\(A,B\)为射影中心、直线\(A'B'\)为透视轴确定一个线束透视对应。在直线\(AB\)上任取一点\(C\)并连接\(CA',CB'\),则可以把线束透视对应化作\(CA',CB'\)上的点列透视对应,且以点\(R\)为透视中心。这时在透视轴上任取点\(C'\),则交点\(S,T\)就是\(R\)的两个透视点,也即\(R,S,T\)共线。这个结论就是帕普斯(Pappus)定理,直线\(RST\)也叫Pappus线(帕斯卡定理是该定理的特例)。然后再换个视角看这个图,假定\(ABC\)-\(A'B'C'\)确定了一个射影对应,则同时也确定了一个以\(A,A'\)为线束中心、以直线\(RS\)为透视轴的透视对应。这时对于任意的点列对应点\(D\)-\(D'\),\(AD',A'D\)的交点必然在直线\(RS\)上,也就是说射影对应的交叉点都在一条Pappus线上,也可以用任意一条线反向构造点列射影对应。
• [练习] 设有点\(S\)对点列\(A_i,B_i\)的中心射影,过\(S\)的直线上有定点\(P,Q\),试证\(PA_i,QB_i\)的交点共线。
最后再举一个经典案例。设两直线\(l,m\)分别交三角形\(\triangle P_1P_2P_3\)三边于点\(Q_1,Q_2,Q_3\)和\(R_1,R_2,R_3\),以两直线的交点\(O\)为射心分别透视\(P_1P_2,P_1P_3\)到\(P_2P_3\)。记三个交比为式(5),不难证明边\(P_2P_3\)上的5点有关系式\((SP_2,Q_1R_1)(P_2P_3,Q_1R_1)(P_3S,Q_1R_1)=1\),根据透视关系就是说\(k_1k_2k_3=1\)。反之也可以证明\(R_1,R_2,R_3\)共线,所以\(k_1k_2k_3=1\)是三点共线的充要条件,取\(l\)为无穷远线就是中学里著名的梅涅劳斯(Menelaus)定理。再如右图使得\(P_1R_1,P_2R_2,P_3R_3\)共点于\(O\),分别对\(\triangle P_1P_2R_1\)和\(\triangle P_1P_3R_1\)使用刚才的结论,综合后可以得到\(k_1k_2k_3=-1\)。反之亦能证明\(P_1R_1,P_2R_2,P_3R_3\)共点,所以\(k_1k_2k_3=-1\)是三线共点的充要条件,这时再取\(l\)为无穷远点就是著名的塞瓦(Ceva)定理。
\[k_1=(P_2P_3,R_1Q_1),\;k_2=(P_3P_1,R_2Q_2),\;k_3=(P_1P_2,R_3Q_3)\tag{5}\]