切换深浅主题
第 1 章:先把对象和“正”定义清楚
1.1 正多边形、全等与相似
正 边形是平面上的凸多边形,要求所有边长度相等、所有内角相等。只等边不够:一般菱形四边相等,却不是正方形。
是边数,且
。
“全等”表示可以平移、旋转,必要时作镜面反射,使两个图形完全重合;不允许缩放。“相似”还允许整体按同一比例放大或缩小。本篇说五“种”立体,是按相似区分:大小不同的两个立方体算同一种。
角度既可用度也可用弧度。整圈 弧度,平角
;因此正
边形每个内角为
。
1.2 凸性与闭半空间:先看立体,再看式子
所有立体都包含自己的边界。集合 是凸的,意思是任取
,整条线段
都在
中,包括端点:
这里 是沿线段的位置比例。例如
给出中点。该条件要求对任意两点成立,画一条留在体内的线段只能举例;找到一条离开立体的线段则足以否定凸性。
一个平面把空间分成两边。“闭半空间”就是其中一边连同平面本身。例如 包括平面
及其左侧。这里“闭”只强调把分界平面也包含进来。
本篇采用如下精确定义:三维凸多面体是有限个闭半空间的交集,且有界、内部非空。 “交集”就是同时满足每一个限制;“有界”就是能装进某个足够大的球;“内部非空”就是其中能放进一个半径大于零的小球,排除薄片和线段。
立方体的例子是 ,即六个半空间限制同时成立。一般可以写为
表示空间点,
;记号
是
,称为点积。
给出一个平面。点积的其他性质在第 10.1 节先解释再使用。
这个定义确实蕴含线段凸性:若 、
,则对
,
每一个限制都成立,所以整条线段都在交集中。这里不把“顶点角和小于 ”当成凸性的定义;那个角度结论将另行证明。
先把平面式子读成几何。 在 中,
是可以变化的空间点,
固定;下标
只是编号。取
,便有
。于是
右边说,从 出发到
的方向垂直于
。所有这样的方向组成一个二维平面,故左边确实给出整张平面。把
除以其长度,得到单位法向量
,方程变为
是沿
的有符号投影,因而
是平面沿
相对于原点的位置;通常的非负距离是
。固定
后,
从
变为
,平面沿
移动
。例如
时是
;
时是
,不能把
一律当成距离。
同一张平面也可写为 。改变
的长度并同步改变
不改变平面;把两边乘负数仍表示同一平面,但写不等式时必须同时反向。因此,说“
决定位置”始终以
已固定为前提。
1.3 面、棱、顶点怎样确定
先定义支撑平面:一个平面碰到 ,而
全部在该平面的一侧。若平面
满足对所有
都有
,且有点取等,它就是支撑平面。
支撑平面与 的交集若是一片有面积的多边形,就叫一个面,取整片交集,不任意再切分。面上的边界线段构成棱;棱的端点是顶点。也可辨认顶点:它不能位于
内两个不同点连接的线段中间。这个等价性质的专门术语是“极点”,下文直接说顶点,不要求记这个新词。
例如,立方体的 是支撑平面,交出一个正方形面。画在这个正方形上的对角线不是立方体的棱;对角线中点也不是新顶点。
一个闭合凸多面体的每条棱属于两个面,每个顶点至少连接三条棱。理由是:在棱中段作垂直小截面,实体局部是一个凸角,它的两条边界射线对应两个面;在顶点附近截去一小块,会得到有面积的凸多边形,至少有三条边。截顶平面的存在与截面形状在第 10.3 节展开。
还有一个后面投影要用的细节:若去掉某个不等式而集合不变,就称它冗余,可以删去。把有限限制删到没有冗余时,每个限制都对应一个真正的面。证明如下:某限制若不能删,就有一点 满足其他所有限制,却违反它。取体内点
,沿
走到第一次使该限制取等的点
;因为此时还没到
,其他限制在
都严格成立。因此在该限制的平面内,
周围有一小片仍满足其他限制,确实形成有面积的面。这说明可以按真正的面选取支撑半空间,不是额外假设。
三个集合要分开。 对已经选定的立体 ,令
| 写法 | 它包含哪些点 | 是否已经是立体的面 |
|---|---|---|
| 平面一侧全部空间,包括边界 | 不是;通常无界 | |
| 一张无限延伸的平面 | 不是;尚未限制在 | |
| 同时在立体和平面上的点 | 支撑时可能是顶点、棱或二维面 |
只有 且
时,
才是相对于
的支撑平面。本篇把有面积的
称为“面”,避免用“支撑面”同时指整张平面和有限多边形。
例如 :
接触整个正方形;
只接触竖直棱;
只接触顶点
。它们都是支撑平面。
穿过实体两侧,不是支撑平面;
根本不接触实体,也不是。
1.4 凸包:给出点集后究竟造了什么
有限点集 的凸包,记作
,是所有这些点的凸组合:
权重 不为负且总和为一。两点的凸包是线段,三个不共线点的凸包是填实的三角形,四个不共面点的凸包是填实的四面体。它不是只把点用线连起来,也不是只取外表面。
凸包的顶点一定从所列点集中选,不会凭空多出新顶点。若一个点不在所列点集中,它的凸组合至少有两个不同点参与;单独抽出一个正权重点,把其余权重归一化平均,就把该点夹在两个不同凸包点的线段中间,所以它不是顶点。
为什么“凸”会写成加权平均? 从 出发朝
走全程的
倍,位置是
。令
,恰好走完整条线段。所以线性组合写法只是线段的坐标翻译。
两点时,每选一个 就得到一个点;让
取遍整个区间,才得到一整条线段。例如
,
得到
,而所有合法
的结果集合是
。“一个凸组合”说一个计算结果,“凸包”说全部结果构成的集合。
多点的系数之和为一还有坐标上的理由:把原点移动向量 ,新坐标为
,则
当 时,结果也只是减去
,仍是原来的几何点;非负条件再把它限制在点之间,防止如
那样超出线段。
为什么三个点能精确填满三角形? 给定三角形内或边界上任意一点 ,从
向
延伸到对边
上的点
。存在
使
于是
三权重非负,总和为一。 则直接取其权重为一。这给出三角形中每个点的权重,并非用有限个采样点近似填充。
反过来,若 是凸组合,且
,把前两项除以
得到
上的点
,再写
,可见
在
内;若和为零,则
。两个方向都证毕。
四个不共面点同理:从一个顶点向对面的填实三角形连线,填满实心四面体。更多点不必寻找统一的“内部形状”:任意有限凸组合都可反复分成两个点的线段组合。例如
一般抽出最后一项,把其余权重归一化,再归纳。因此任何含 的凸集都包含全部凸组合;而这些凸组合自身成凸集、包含
,所以它正是包含
的最小凸集。这同时解释了为什么没有漏掉“点之间必须填上的部分”。
原始点、凸包中的点、凸包顶点各是什么? 令 。其凸包是整个实心正方形;原始点
在
中,却不是顶点;
在凸包边界上,也不是顶点。真正顶点是四个角。下文的
始终允许任意内部点和边界点,不专指某个原始
。
支撑平面的取等条件,为什么不能混入下方点? 在全部 的前提下,令缺额
。对凸组合
,
右边是非负项之和。若 落在平面上,左边为零,每个正权重对应的
都必须为零;有任意一项正权重且正缺额,和就大于零。例如三个不超过
的数,按正权重平均得到
,三者必须全为
;权重为零的数则不受此限。
故有准确的集合等式
这一步利用了“全部点在同一侧”。若原始点分居两侧,正负缺额可以抵消,结论就不成立。
明确引用的基础结论。 有限个不全共面的点的凸包是有界、内部非空的凸多面体;反过来,每个有界凸多面体是其有限顶点集的凸包。这是有限凸多面体的两种表示定理。本篇不从零证明整个表示定理;第 11.6 节会证明计算中实际需要的“有界半空间交等于顶点凸包”方向。引用范围仅限此处,不包含正多面体分类、欧拉公式或任何正则性结论,来源见第 12.4 节。
1.5 本篇对“凸正多面体”的明确标准
先把一种对称变换说清:对整个空间作保持距离的刚性变换,使立体仍与原立体重合。旋转、镜面反射及其组合都允许;缩放不算对称。
在立体上同时标出三样东西:一个顶点 、一条包含
的棱
、一个包含
的面
。称它们为一组关联标记
。高级术语把这一组标记叫“旗标”,这里只把它看成三个相互包含的标记。
定义: 凸多面体 称为凸正多面体,如果任意两组这样的关联标记,都能用同一个整个立体的对称变换,同时把第一组的顶点、棱、面移到第二组的对应位置。
对每一对给定标记,要求存在一个最终的整体对称 ,同时完成三项对应;不同标记对允许选择不同的
。
可以由若干次旋转或反射复合得到,不要求只做一步动作。只分别证明“点能到点、棱能到棱、面能到面”,却没有协调成同一个
,仍然不足。第 1.10—1.11 节把两种可用的协调方法具体展开。
它蕴含熟悉的几何性质:
- 任何一个面能移到另一个面,所以所有面全等。
- 固定一个面时,它的任意顶点—边标记可互相对齐。因此该面各边、各角相同,是正多边形。更细地说,面上这些对称保持顶点平均位置,所有顶点在以它为圆心的圆上;边界各段圆心角又相同,所以是规则地等分圆周的正多边形。
- 任意顶点可移到另一个顶点,所以每个顶点相交的面数相同。
因此可用 表示每个面的边数、
表示每个顶点相交的面数,也等于该顶点相接的棱数。
。我们实际证明的构造会满足完整的关联标记标准,不只是验证“棱长相等”。
常见初等教材用“凸、各面为全等正多边形、每个顶点面数相同”介绍柏拉图立体。本文为使第 11.8 节的唯一性论证不暗用更强对称,始终采用上面的明确标准;不把两种说法的等价性当成未说明的中间步骤,也不将它们在非凸或抽象对象上的推广混为一谈。
1.6 本篇要分别完成的三项任务
用 分别表示顶点数、棱数、面数:V = Vertex(顶点),E = Edge(棱),F = Face(面)。顺序是“点—线—面”,维数
;计数式
可读作“点减棱加面”。例如立方体为
。
- 必要限制: 任意凸正多面体只能落在五组参数
中。
- 存在与正则性: 对每一组,确实造出一个凸多面体,并验证它满足第 1.5 节的定义。
- 唯一性: 同一组参数的凸正多面体相似,故只算一种。
第三项不能只由前两项推出。本版第 11 章把三角形面的实际确定、五重对称、十二面体的半空间验证和唯一性的推导分节展开;不再用“可直接核对”代替这些任务。
1.7 旗标怎样画出来,能不能填满立体
把顶点涂红、选中的棱涂金色、选中的面涂蓝色,就得到旗标的图像。用小写 表示一条具体棱、一个具体面,用大写
专门计数,避免把“一条棱”误读成“棱的条数”。
旗标 是关联记录,本身没有体积。要把它变成一小块空间,取每条棱的中点
、每个面内部的一点
,再取实体内部一点
;旗标对应小四面体
。
这确能分完整个凸多面体,且各块内部互不重叠。先在每个凸多边形面内,从 连到各顶点,分成以原棱为底的三角形;再由
把每个三角形切成两半。如此得到全部
个旗标小三角形。随后由
连向这些表面小三角形,得到小四面体。
任意 所在的射线从内部点
出发,因凸性、有界性恰好有一个最远边界点
,
。
落在某个小三角形中,故
落在对应小四面体中。不同块若内部重叠,其射线边界点就会同时落在两个表面小三角形内部,矛盾;公共边界处允许相交。
则在每块的边界上。
每条棱有两个端点、两侧两个面,因此总共有 个旗标。立方体有
个小四面体。任意凸多面体都能这样划分;各小块未必全等,更不保证存在使整个立体不变的变换将它们互换。
1.8 先把八种平面标记全部走一遍
在正方形 上,标记只需“顶点—边”。取
令 为逆时针
旋转,
为关于对角线
的反射。右边变换先执行,例如
表示先
后
。
| 已知整个正方形的变换 | |
|---|---|
这两行确实覆盖全部 个标记。这里只证明一次
能到
会不够;上表明确补上了所有目标。
与
是同一条无向边,但
与
的选中顶点不同,仍是不同标记。
同一面的标记还可以按上图的八步循环,仅靠“换端点”和“换相邻边”全部走遍。这里先只是换选中的对象;在不规则长方形中也能这样换标记,但长边变短边未必能由等距对称实现。
1.9 三维旗标为何连通,为什么单靠连通还不够
从旗标 出发有三种相邻记录:
| 编号 | 保持选中什么 | 唯一改选什么 |
|---|---|---|
把所有旗标当成图的节点,每一对相邻记录之间画线,得到旗标图。这是记录之间的关系图,画出的线不是原立体的棱。
同一个 边形面内,交替换端点、换棱,沿边界形成
个旗标的循环;相邻面共享棱时,可以保持该棱和一个端点,只改选面,从一个循环跨到另一个循环。任意凸多面体的面都能沿共享棱的面链相连,详细截面证明放在第 5.1 节。因此所有旗标相连。
该证明用凸性保证截面是单个凸多边形,沿其边界能走通。这不表示凸性是结论的必要条件:对于连通的多边形表面,只要每条棱恰好邻接两面、每个顶点附近的面围成一个环,也可在表面上将路径挪开有限顶点,得到共享棱的面链。这里的两个条件排除“只在一个点接触”的异常连接;两个立方体只在一个顶点碰到时,集合虽然连通,两个旗标图却不能跨过去。非凸体的一个平面截面还可能分裂成多块,不能原样套用凸截面的证明。
连通只负责提供换标记的路线。 普通长方体的旗标也连通,但长棱不能经整体等距变换变成短棱。所以还必须逐步证明:所需的标记对应,确实来自保持整个立体的变换。
1.10 统一验证法一:先对齐顶点,再对齐棱和面
这是第 11 章的主要方法,先把共同逻辑写全。需要证明两件事:
- 任意顶点能由整个立体的对称变换移到任意另一个顶点。
- 固定一个顶点时,仍能用保持该顶点不动的整个立体对称,把该处任意“棱—面”关联对移到任意另一个。
任取 、
。先用第一项找到
使
;此时记
。再用第二项找到
,保持
,同时将
变成
。于是
每个分步都作用于整个立体,复合后仍是一个整体对称,正好符合定义。定义并不要求物理上只做一次动作,也不禁止连续用多次反射、旋转。
若第二项只在一个基准顶点 验证,也足够:给定目标顶点
,先用已经证明存在的
把
移到
;
把
处的两组标记拉回
,在
用已知对称
调整,再用
放回。
就完成
处的局部调整。这没有假定待证的旗标传递性。
反过来,若立体满足旗标定义,任意选定顶点上的旗标可移到另一顶点上的旗标;同一顶点上的两旗标也能相互对应且该顶点不动,所以上述两项也是必要的。这里没有要求读者先学“稳定子”:这个术语只表示保持某个顶点不动的所有整体对称。
1.11 统一验证法二:三个基本 S 怎样构造全部 T
另一种方法是:在基准旗标 上,找到三个已经核对保持整个立体的对称
,分别将它移到第
种相邻旗标。具体构造中的困难是找到这三个
;之后的
用归纳构造,不能预先假定存在。
令“已到达”表示已经有一个整体对称 使
。开始
,所以
已到达。整体等距对称保持面、棱、顶点的包含关系,故将相邻旗标映成同类型相邻旗标;又因每种邻居唯一,
的第
种邻居正是
所以“到达一个旗标”推出“它的三个邻居也都到达”。沿第 1.9 节保证存在的任意有限路线归纳,就得到所有目标。若路线第 步换第
个对象,递推式为
注意区别:这是从基准旗标算目标像的公式。若要从当前 实际执行下一步,使用的是
右边先把当前标记带回基准,再做 ,最后带回当前位置;这叫“共轭”。直接代入可核对
,且
。原来的固定
未必在当前位置只换一项,不能略去这个区别。
最后,若 、
,则
把任意给定的
移到
。这才从一个起点的覆盖推出任意两点互通。
立方体的三个 S 可以直接写出。 取 ,
为连接
和
的棱,
为
的面:
| 对称 | 保持整个立方体的理由 | 对基准旗标的作用 |
|---|---|---|
| 改变一个坐标符号 | 保持 | |
| 交换两个坐标 | 保持 | |
| 交换两个坐标 | 保持 |
它们分别是关于 、
、
的平面反射。每个作用于全部八顶点和整个实体;上面的归纳与连通性将三项局部验证升级成定义要求的全局对应。与第一种方法任选一种完成就够了,不必把两种方法的全部证明重复做五遍。