1. 顺序公理
关联公理仅讨论了对象的连接属性,但这些对象目前仍然是一种无序的状态(集合状态)。为了体现对象的空间性,需要定义一种顺序关系,使得对象更有“方向性”和“位置感”。几何中的“位置”看起来有很多种,比如直线的两个方向、平面的两面、圆形(球形)的内外等,但令人惊讶的是,这些关系居然都可以从直线上三点的关系定义起。
按理说两个点就足以确定方向,但要注意“方向”概念本身的引入是需要三个点来说明的。比如为了说明直线上点的两侧,你必须指出分属两侧的点与构成何种顺序关系(介于之间)。顺序公理就是定义了直线上三点间的“介于”关系,也可以说成点在之间。
顺序公理
一直线上的三点中,最多有一点在其它两点之间,且在点之间等价于在点之间。
对于点,直线上存在点,使得在之间。
平面上有直线和三点,若通过线段但不经过点,则它必定通过线段或。
公理先声明了介于关系的对称性,对于一个崭新的概念,这些看似多余叙述其实是严谨性所要求的。还限制了介于关系不多于一个,却没有直接表述三点介于关系的存在性,这是因为它可以通过其它的公理推导出来,这个我们等会再看。公理将进行了扩充,使得直线上的点不止两个,而且它是向两个外部方向扩展的,为构造更多的点提供方便的工具。
在继续讨论之前,可以先定义一下线段,对任意两点,它们可以合称为线段或(次序无关)。点就叫线段的端点,介于之间的点也叫线段上的点或线段的内点。若不同于的另一直线经过线段的某个内点,那么称直线穿过线段。注意,这个线段的定义避免了“所有介于之间的点”这样的描述,使得讨论可以仅限于问题中的有限个元素。
光靠在一维空间的讨论,非常难以构造直线上的顺序关系,公理巧妙地通过二维空间一次性结束了整个顺序公理。可以这样直观地理解(以下左图):一条直线进入三角形的内部后,一定会再从中出来。这条公理其实为封闭曲线的讨论奠定了基础,而且公理中直接给出了构造两点之间点的方法,其实联合可以生成非常复杂的介于关系。先来构造介于之间的点,取直线外一点,作点使在之间,再作点使在之间。对和直线使用可知必定穿过线段,设交点为,它就是我们要构造的点。

以上右图结合了公理,它是个非常基础的图形,其中的小结论可以作为有力的证明工具,以后会经常用到。具体来说,图中共有四个介于关系,用其中的两个可能推导出另外两个,只不过现在为止还只能得到两个结论。首先,如果分别在线段上,则显然点分别在线段上。还有,如果分别在线段上,则可以先后证明在线段上。剩下的因果关系,你可以在得到下段的结论后再讨论。
在构造空间的位置之前,先要把直线上的顺序关系定义好,而此时我们还需要把上面遗漏的一些问题解决。一个是公理中没有指出介于关系的存在性,如以下左图,先假设点不在线段上,目标是证明点在线段上。先取直线外一点,并作点使在线段上,先由不难得到分别在线段上,然后用上面的小结论很快得到在线段上,最终可得在线段上。另一个要解决的是中未说明的:是否只经过线段中的一个。假设与三条边都有交点,则交点中必定有一个在其它两个之间,设在之间,利用上面的小结论直接得到在线段上,导出矛盾。

现在来看看如何定义直线上的顺序关系,所谓顺序关系,就是给定直线上的一个点集,一定可以把它们排成序列(这里否定了环线的存在),使得如果则必有在之间。首先需要说明,如果这种排列存在,则只有两种可能,且它们正好是首位相倒的,这个不难用反正法来证明。首先所有序列的首尾两个点(或者翻转之后)必定是相同的,因为它们都不在其它点之间,而这样的点只能有两个。然后如果线段之间的点在不同的序列中顺序不同(),由唯一的介于关系也能直接导出矛盾。另外还容易看出,任何子集的排列(或者翻转后)也是序列的一个子序列。
当时,这个序列显然存在(且翻转后唯一),下面用归纳法证明对任意都存在。设给定直线上的个点,先把其中的任意个点排成序列,然后证明可以把另外一个点插入到这个序列中。为证明结论,我们需要两个简单的引理,它们是三点序列扩展为四点的常见情形(以下左图)。已知条件当然是在之间,由此先构建基本图形。第一种附加条件是在之间,这时也同样得到基本图形,考察与直线便知在之间。同理可证在之间,因此构成四点序列。第二种附加条件是在之间,同样考察和直线,可知在之间。结合在之间可得到基本图形,从而得到在之间,并进而得到在之间,它们说明构成四点序列。

现在回到问题的证明,考察点与组成的序列,它相当是把插入到序列的个位置。当序列是时,问题是要证构成序列,为此只要证在之间,对使用以上引理即可。当序列是时,问题是要证构成序列,同样对使用引理即可。当序列是时(以上右图),问题是要证或者构成序列。如果在之间或在之间,利用引理即可分别得到结论,现在还需证明不可能在之间。这时可以构造基本图形和,考察和直线便可知不可能在之间。
2. 边界和区域
刚刚我们证明了直线上点集的顺序性,而顺序性自然能给出方向的定义,这对在几何中建立空间概念必不可少。比如,前面当证到至少存在一点在任何两点之间时,你一定迫不及待说,依次类推可知两点间有无穷多个点。但无穷的概念只有在序列(自然数)出现后才能被说清楚,因此这个论断一定不能缺少顺序定理在场。笼统地说,顺序关系使得点在空间有了秩序和位置,从而可以被划分、切割,这样使得聚类讨论成为可能。
所谓划分,就是使用一个边界将空间中的点进行分类,同类的点组成一个区域,区域和区域之间没有交集(边界和区域尚未定义)。区域最大的特点就是:同一区域的点是相互连通的,而不同区域则不连通。直线上的点集将直线划分成多个线段或射线(段),每段就是一个区域,分割点便是边界。平面上的直线、或射线线段组成的图形把平面分成了多个区域(片),三维空间中的平面或片又将空间分割为多个区域(块)。点将直线分割为段,段将平面分割为片,片将空间分割为块,这些都是直观的叙述,需要逐一对其进行严格定义。以下仅举几个基础的场景作为示例,不展开完整叙述,而且你还要知道,这里并不涉及复杂的曲线面。
2.1 简单的划分
为了说明连通性,先要定义折线段,它是一组首尾相连的线段的总称,也可简记为,点在折线段上是指在某个线段上或是某个端点。所谓点连通,是指存在折线段,它与边界没有交点(边界视情况而定,可能是点、线、面、以及复杂组合)。上面说道区域内的点相互连通,这就暗示连通其实是一个等价关系,而对称性、传递性都比较显然。如果区域中的任意两点的线段与边界无交点,则它也叫线段连通的,否则叫折线连通的。
先来看单个点对直线的分割,当上的两点连通时,其实等价于点不在线段上。有时还把这样的点称为在的同侧,否则称为在的异侧。如果非要用线段(非折线段)连通作为同侧的条件,则还要证明同侧具有传递性。假设同侧且同侧,则讨论组成的序列,必然有在序列中有的一侧,即也在同侧。另外,容易构造点使得在它们之间,用顺序理论可证直线上的其它点只能和之一同侧,所以把分成了两个区域。点和和其中的一侧合称为一条射线,当点在这一侧时也称在射线上,或者记射线为,显然直线被其上的任意点分成了两条射线。
再来看直线对平面的分割,这时也可以用线段连通作为同侧的定义:都不在上,且线段与没有交点,则称在的同侧。同侧的传递性直接用反证法和公理可证。另外,同样容易构造出在异侧的两个点,利用反证法也可证明:平面上的任何点都同之一在同侧,被其上的任意直线分割成了两个区域。对空间中的任意平面,用完全相同的方法,可以定义同侧并证明其传递性,而且空间被分割为两个区域。线、面、空间这种简单的划分,其实还可以作为“方向”的定义,这里不展开阐述。
说到“方向”,其实还有一种常见的场景,那就是旋转(本段是本人杜撰),平面上绕点旋转、空间中绕直线旋转。要想在空间对象上定义旋转方向,就需要给环状序列()一个合适的定义,而且这种定义下只有两种环状序列(旋转重合算一种),它们翻转后重合。以平面上的直线绕点旋转为例,在不区分直线上点的两侧的情况下,我们来构造直线环状序列。其实要定义的只是直线的“相邻”关系,且任一直线总是只与另外两条直线相邻,如果能证明环状序列的存在性,其唯二性也就显然了。
在同一平面上通过点的条直线,何为两条直线相邻?首先,两条将平面分割为四个区域(显然是线段连通的),而且它们可以被分成两对,每对都在两条直线的不同测,这些区域对便是定义的关键。问题可以先退化到只有一条直线的情形,空间被分割为一对线段区域(每个区域线段连通),且这对区域在的两侧。当添加直线时,容易证明的两条射线分别处于之前的一对区域中,且把它们分成了两对区域(仍然线段连通),而没对区域都处于的两侧。如果划分的两对区域中,有一对里不含其它直线,我们就称相邻。开始时相邻,且把它们组成环,其中的两个间隙可对应两对区域。后面每次加入一条直线,(类似的证明)都只会分割之前的某对区域,且分割后的每对区域都在所有直线两侧(且线段连通)。新添加的直线破坏了原来的相邻关系,但引入了新的相邻关系,这就相当于把插入到之间,环得到扩展而性质不变。这个逐步添加的过程便可以构造出满足条件的环状序列。
2.2 角
你可能会问,把以上论证中的直线换成射线不是更简洁吗?但其实我们还没有建立任何的射线分割的理论,离开相应的结论以上论述就经不住推敲。为此我们就讨论一下射线对平面的分割,设为平面上以为端点两条不共线的射线,并且记直线上的另外一条射线为。射线合称为一个角,并记为(不分顺序),分别叫角的边,叫角的顶点。直线交于,且把平面分割为四个线段连通的区域,以这个视角看待射线对平面的分割会更加方便。
如果以为边界,以下左图的区域自然是一个线段连通的区域,它叫的内侧,相应的,平面上和之外的“区域”称为角的外侧。对于外侧的任意两点,取区域中任意一点,不难证明都和线段连通,从而折线连通。所以外侧是连通的,它可以被称为一个区域,然后需要说明内外侧不连通。取内侧的点和外侧的点,不失一般性,可设与在直线的两侧(以下右图)。首先容易证明:无论如何折线段都与直线相交,如果射线(包括点)上有交点,则结论得证。如果交点在上,设第一个交点为线段上的点(可能为),则在直线的两侧。设折线与直线交于点,则必然在射线上,结论得证。

然后继续讨论角的性质,利用射线和直线的位置关系,容易证明,从出发的任意射线(不同于)必然整个在角的内侧或外侧,而且它把这一侧又分割为两个区域。其中后一个结论不是不证自明的,需要从直线分割的角度分类讨论。有了这些结论,就可以用射线定义旋转的方向了。把某一侧没有其它射线两条射线定义为相邻的,后面的论证非常类似,这里不再赘述。有了环状序列,便可以从任意一处断开为顺序序列,也就是说在角的每一侧可以建立射线的顺序关系。这时就可以在射线之间定义“之间”的概念,即如果射线在内侧,则称在之间。
当然,如果没有前面关于旋转的讨论,也可以仅凭“之间”的定义对角内侧射线建立顺序关系。构造关系时,可以顺利借助直线上点的顺序关系,为此先来看一个简单的引理(以下左图)。分别在射线上取点,则显然线段的内点都在角的内侧。再考察从出发的内侧射线,取点使得在之间,然后容易证明直线与线段不相交(以为边界),最后对和直线使用知与必定相交。这个结论把射线的“之间”关系转化为点的“之间”关系,利用这个对应可以证明,三条射线中最多有一条在其它两条之间(反证)。
当然这里仅讨论角内侧中的射线簇,或者换个说法,射线簇中存在一个射线,使得其它射线都在直线的同一侧。如果能找到一个,使得其它都在内侧(以下右图),则在上分别取点。讨论线段与其它射线的交点构成的序列(包括),便能建立一个射线序列,其中是序列两端。可以使用归纳法证明结论,当时,如果在内侧,则结论成立。如果在外侧,则线段必与直线相交,但交点又只能在直线的同一侧,所以必然在射线上,在内侧。当引入时,类似地讨论之间的关系,也能证明结论。

2.3 多边形
空间中还有一种分割方法,是一个封闭区域所划分的内外侧,展开讨论篇幅将很大,这里仅举平面上封闭区域为例。所谓封闭,就是折线段且首尾相连,它被称为多边形(边形),组成它的线段和端点分别叫多边形的边和顶点。当多边形的任意两边没有公共点时(包括端点和线段内点),它也叫简单多边形。直觉上简单多边形(以下简称多边形)将平面划分为内外侧,直线可以不通过内侧,即使通过两侧也一定在外侧,下面就来讨论这一系列问题。
由于折线段的情况非常复杂,试图通过直线的两侧来定义区域将非常困难,这时不妨从直观性质中寻找灵感。直观上,一个从封闭区域内侧出发的射线,最终一定会跑到外侧,因此它必定穿过边界奇数次。在此我们必要严谨地讨论一下射线“穿过”多边形的次数。直线和多边形有公共点的情形无非下图中五种,但第三、五种直线没有“刺穿”边界,它们不算一次穿过,其它三种都算一次穿过。另外显然,直线只能穿过线段一次,穿过边形不超过次。为了不造成混淆,这里仍然把“有公共点”称为“相交”,这与课本不同。

考察从同一点出发的两条不同射线,它们或者共线、或者组成一个角,但都将平面分成两个区域。这样的两条射线还把多边形分割为多个折线段(首尾是射线和多边形交点,不讨论在直线上的线段),且容易证明:相邻的折线段分别在平面的两个区域。因为从某个折线段出发遍历整个多边形还会回来,所以折线段的个数必定是偶数,即两条射线穿过多边形的总次数是偶数。这就是说,从同一点出发的任意射线穿过多边形的次数有相同的奇偶性,次数为奇(偶数)数的叫多边形的内点(外点)。我们要证明的结论则是:以多边形为边界,它的所有内(外)点之间都连通,但内外点不连通,这两个区域分别叫多边形的内侧和外侧。
为了证明内(外)点的连通性,我们需要一些引理做铺垫,这些引理是为了证明局部的连通性。面对千变万化的多边形,从局部出发、尤其是从多边形的边和顶点附近出发,是一个很客观的策略。先来看一个三角形内点的性质(以下左图),以后把三角形顶点与其对边内点组成的线段叫三角形的“贯线”。在不与边重合的情况下,直线与三角形最多只能有三个交点,而上面知道直线只能穿过多边形偶数次,故此时交点数只能是或。因为通过内点的直线一定与多边形相交,故通过三角形内点和顶点的直线也必然与其对边相交,也就是说内点一定在贯线上,反之显然成立,即点为三角形内点的充要条件是它在某条贯线上。

如果线段与三角形相交且有点是三角形内点,那么称这个线段穿过了三角形,它与三角形的交点也叫“穿过点”。考察这样一个和多边形(以上右图),如果与的穿过点只能出现在(可以没有)边(包括端点)上,容易证明一定有顶点是内点(就是穿过三角形的线段的某个端点)。容易在上构造点,使得中没有的顶点,即上没有的内点,这样的任一贯线上都没有的点。同样道理,也存在贯线满足特点,也即存在使得图中的绿色线段(不包括端点)上没有的点。
有了以上引理,我们就来证明一个重要的结论:从简单多边形(或简单折线段)之外一点,总能通过一条折线段连通到上任意一点。先从构造一条与相交的射线,而是第一个交点,这时就是折线相通的。假设上与相邻的两个顶点是(本身也可能是顶点),下面证明与上的所有点连通,如果结论成立,则可以依次推断与上所有的点都连通。不失一般性,下面证明连通。
如果不共线、且在外侧(以下左图),对使用引理,上存在点,使得内部没有的点,显然折线段连通了。如果共线、或者在内侧(以下右图),在射线上取点,使得线段内部没有的点。先对使用引理,上存在点使得上没有的点,再对使用引理,上存在点使得上没有的点,这时折线连通。

现在回到内(外)点连通的证明(以下左图),设都是内(外)点,先在某条边上取一点,且假设已经构造出连通折线和。对使用引理,上存在点使得上没有的点,显然折线段连通,区域性得证。要证明两个区域不连通,等价于证明不存在连点线段连通。分别在内、外侧取点,考虑射线穿过的情况,根据内外点的奇偶性不同,可知线段上一定有穿过点,内外侧的不连通性得证。

最后的问题是直线与多边形的相交情况,首先如果直线穿过多边形,由于内点射线的穿过次数为奇数,直线的两端最终一定都在外侧。那么有没有直线不穿过多边形、甚至和多边形没有交点呢?这个问题可以换成一个更一般的问题:平面上有个点,是否存在直线,使得所有点都在的同一侧?先任取一直线,假设的两侧都有点,将两侧的点互相相连,这些直线一定都与相交。将这些有限的交点排成序列,考察与相交于的那条直线,所有点都在的一侧、或就在上。为了使得直线上也没有给定的点(以上右图),在每个点上构造两条线段(相交于但不含有其它点),对这些线段的点使用刚才结论并得到直线。可以证明上一定没有给定点,且给顶点都在的同一侧。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架