# 正多面体与欧拉公式笔记

第二版 · 2026-10-15（北京时间）

从“为什么凸正多面体只有五种”出发，逐步追问顶点角和、欧拉公式与平面分割的依据。本文把直观图景、证明和引用的基础结论分开：主线只讨论有限条线段，不要求先学习一般若尔当曲线定理。

本版新增 15 幅证明图（另保留原有 2 幅示意图）。建议先看图注和颜色对应，再读紧随其后的论证；窄屏可横向滑动较宽的证明图。

阅读建议：先读第 1—3 章把握分类，再读第 4—9 章检查欧拉公式；第 10 章补几何路线，第 11 章补存在性与唯一性的依据，第 12 章回看原对话中的疑问。

<a id="reading-toc"></a>

## 正文目录

- [第 1 章：讨论对象与证明任务](#chapter-1)
- [第 2 章：两条路线为何得到同一限制](#chapter-2)
- [第 3 章：五组整数解与五种立体](#chapter-3)
- [第 4 章：只需简单多边形的分割定理](#chapter-4)
- [第 5 章：凸多面体怎样变成直线平面图](#chapter-5)
- [第 6 章：树为什么有 V−1 条边](#chapter-6)
- [第 7 章：树为什么只有一个面](#chapter-7)
- [第 8 章：加回一条边为什么恰好多一个面](#chapter-8)
- [第 9 章：完成欧拉公式的证明](#chapter-9)
- [第 10 章：顶点角和小于 360° 的几何证明](#chapter-10)
- [第 11 章：存在性、唯一性与证明的边界](#chapter-11)
- [第 12 章：问题回查、练习与来源](#chapter-12)

<a id="chapter-1"></a>

## 第 1 章：讨论对象与证明任务

[返回目录](#reading-toc)

### 1.1 凸多面体的严格含义

本文的凸多面体是三维空间中有界、内部非空的有限个闭半空间的交：

$$
P=\bigcap_{i=1}^{m}\{x\in\mathbb R^3:a_i\cdot x\le b_i\}.
$$

其中 $a_i\ne0$。作为集合，它包含内部和边界。“凸”意味着任取 $A,B\in P$，连接二者的整条线段仍在 $P$ 中：

$$
(1-t)A+tB\in P\qquad(0\le t\le1).
$$

每个半空间都具有这个性质，交集也具有这个性质。反过来，有界的多面体若具有线段凸性，可以用其各面的支撑半空间表示；这里引用这一标准等价刻画。立方体的例子是 $0\le x,y,z\le1$。

面取极大的二维平面面；不会把一个正方形随意划成两个三角形后，把对角线当作原多面体的棱。顶点取真正的极点，棱取一维面。

<figure class="proof-figure" id="fig-convexity"><div class="diagram-scroll"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 760 300" role="img" aria-label="fig-convexity" style="width:100%;height:auto;display:block"><defs><marker id="fig-convexity-arrow" markerWidth="8" markerHeight="8" refX="7" refY="3" orient="auto"><path d="M0 0L7 3L0 6Z" fill="#2b806b"/></marker></defs><text x="185" y="28" font-size="18" fill="#29495d" text-anchor="middle" font-weight="normal">凸：任意两点的线段都留在内部</text><text x="570" y="28" font-size="18" fill="#29495d" text-anchor="middle" font-weight="normal">非凸：找到一条跑到外面的线段</text><path d="M50 90L220 60L315 175L100 240Z" fill="#e5f0f5" stroke="#286786" stroke-width="3" stroke-linejoin="round" stroke-linecap="round"/><path d="M100 120L245 175" fill="none" stroke="#c48a28" stroke-width="4" stroke-linejoin="round" stroke-linecap="round"/><circle cx="100" cy="120" r="5" fill="#c48a28" stroke="#c48a28" stroke-width="2"/><circle cx="245" cy="175" r="5" fill="#c48a28" stroke="#c48a28" stroke-width="2"/><text x="84" y="108" font-size="18" fill="#29495d" text-anchor="start" font-weight="normal">A</text><text x="252" y="177" font-size="18" fill="#29495d" text-anchor="start" font-weight="normal">B</text><path d="M420 65H510V160H610V65H705V245H420Z" fill="#f6e7e5" stroke="#ba514f" stroke-width="3" stroke-linejoin="round" stroke-linecap="round"/><path d="M465 110L660 110" fill="none" stroke="#c48a28" stroke-width="4" stroke-linejoin="round" stroke-linecap="round" stroke-dasharray="6 5"/><circle cx="465" cy="110" r="5" fill="#c48a28" stroke="#c48a28" stroke-width="2"/><circle cx="660" cy="110" r="5" fill="#c48a28" stroke="#c48a28" stroke-width="2"/><text x="450" y="98" font-size="18" fill="#29495d" text-anchor="start" font-weight="normal">A</text><text x="670" y="112" font-size="18" fill="#29495d" text-anchor="start" font-weight="normal">B</text><text x="560" y="142" font-size="16" fill="#ba514f" text-anchor="middle" font-weight="normal">线段穿过凹口</text></svg></div><figcaption>图 1｜先看截面：左图只展示一个例子，凸性要求对所有两点成立；右图的一条反例线段已经足以否定凸性。</figcaption></figure>

### 1.2 正多面体与参数

通常的凸正多面体要求整体对称：其欧氏对称群对所有“顶点—棱—面”的关联旗标传递。旗标就是一个顶点、一条包含它的棱、一个包含该棱的面的组合；允许对称包含反射。

这蕴含两个分类时要用的性质：所有面都是全等的正 $p$ 边形；每个顶点都有相同的 $q$ 个面相交，也有 $q$ 条棱相接。这里 $p,q\ge3$。

初读时可以先用这两个性质计数；不要把“各面正且每个顶点面数相同”未经说明就当成一般情形下整体对称性的定义。第 11 章的唯一性讨论使用上面的整体正则性。

用 $V,E,F$ 分别表示顶点数、棱数、面数。分类需要三件事：限制可能参数；构造对应立体；说明同一参数没有另一种不相似的凸正多面体。仅枚举参数尚未完成后两件事。

<a id="chapter-2"></a>

## 第 2 章：两条路线为何得到同一限制

[返回目录](#reading-toc)

### 2.1 从局部角度出发

正 $p$ 边形的每个内角是 $\alpha=(p-2)\pi/p$。凸多面体的真正顶点处，相邻面的面内角之和严格小于 $2\pi$，其证明见第 10 章。因此

$$
q\frac{(p-2)\pi}{p}<2\pi.
$$

先约去正数 $\pi$，再乘以正数 $p$，得到 $q(p-2)<2p$，即 $pq-2p-2q<0$。两边加 $4$ 并因式分解：

$$
\boxed{(p-2)(q-2)<4}.
$$

### 2.2 从整体计数出发

每个面有 $p$ 条棱，但每条棱被两个面共享；每个顶点有 $q$ 条棱，但每条棱有两个端点。所以

$$
pF=2E,\qquad qV=2E.
$$

<figure class="proof-figure" id="fig-double-count"><div class="diagram-scroll"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 760 265" role="img" aria-label="fig-double-count" style="width:100%;height:auto;display:block"><defs><marker id="fig-double-count-arrow" markerWidth="8" markerHeight="8" refX="7" refY="3" orient="auto"><path d="M0 0L7 3L0 6Z" fill="#2b806b"/></marker></defs><text x="180" y="28" font-size="18" fill="#29495d" text-anchor="middle" font-weight="normal">按面数棱：同一条棱被数两次</text><path d="M60 95L180 60L180 215L60 180Z" fill="#e4f0f5" stroke="#286786" stroke-width="3" stroke-linejoin="round" stroke-linecap="round"/><path d="M180 60L300 105L300 190L180 215Z" fill="#fcf0d9" stroke="#c48a28" stroke-width="3" stroke-linejoin="round" stroke-linecap="round"/><path d="M180 60L180 215" fill="none" stroke="#ba514f" stroke-width="6" stroke-linejoin="round" stroke-linecap="round"/><text x="72" y="145" font-size="18" fill="#29495d" text-anchor="start" font-weight="normal">面 1</text><text x="225" y="145" font-size="18" fill="#29495d" text-anchor="start" font-weight="normal">面 2</text><text x="180" y="245" font-size="21" fill="#29495d" text-anchor="middle" font-weight="normal">pF = 2E</text><text x="565" y="28" font-size="18" fill="#29495d" text-anchor="middle" font-weight="normal">按顶点数棱：每棱有两个端点</text><path d="M455 135L675 135" fill="none" stroke="#286786" stroke-width="5" stroke-linejoin="round" stroke-linecap="round"/><circle cx="455" cy="135" r="9" fill="#c48a28" stroke="#c48a28" stroke-width="2"/><circle cx="675" cy="135" r="9" fill="#c48a28" stroke="#c48a28" stroke-width="2"/><text x="455" y="110" font-size="18" fill="#29495d" text-anchor="middle" font-weight="normal">A</text><text x="675" y="110" font-size="18" fill="#29495d" text-anchor="middle" font-weight="normal">B</text><text x="565" y="185" font-size="18" fill="#29495d" text-anchor="middle" font-weight="normal">A 数一次，B 再数一次</text><text x="565" y="245" font-size="21" fill="#29495d" text-anchor="middle" font-weight="normal">qV = 2E</text></svg></div><figcaption>图 2｜两条双重计数等式，都来自“同一个对象被数了几次”。</figcaption></figure>

将 $F=2E/p$、$V=2E/q$ 代入将于第 9 章证明的欧拉公式 $V-E+F=2$：

$$
\frac{2E}{q}-E+\frac{2E}{p}=2.
$$

由于 $E>0$，两边除以 $2E$ 并移项：

$$
\frac1p+\frac1q=\frac12+\frac1E>\frac12.
$$

乘以正数 $2pq$，得到 $2p+2q>pq$，再整理就得到同一不等式。严格大于来自 $1/E>0$，没有额外的几何假设藏在这一代数步骤中。

两条路线可以分别成立：欧拉公式的证明不需要预先知道顶点角和；顶点角和的证明也不需要欧拉公式。

<a id="chapter-3"></a>

## 第 3 章：五组整数解与五种立体

[返回目录](#reading-toc)

### 3.1 不漏项地枚举

令 $a=p-2$、$b=q-2$，则 $a,b$ 是正整数，且 $ab<4$。

若 $a=1$，则 $b=1,2,3$；若 $a=2$，则只能 $b=1$；若 $a=3$，也只能 $b=1$；若 $a\ge4$，任何正整数 $b$ 都不可能。因此恰好五组参数。

| 每面边数 p | 每顶点面数 q | 立体 | V | E | F |
| --- | --- | --- | --- | --- | --- |
| 3 | 3 | 正四面体 | 4 | 6 | 4 |
| 3 | 4 | 正八面体 | 6 | 12 | 8 |
| 3 | 5 | 正二十面体 | 12 | 30 | 20 |
| 4 | 3 | 正六面体（立方体） | 8 | 12 | 6 |
| 5 | 3 | 正十二面体 | 20 | 30 | 12 |

计数可以由参数反算：

$$
E=\frac{2pq}{2p+2q-pq},\qquad V=\frac{2E}{q},\qquad F=\frac{2E}{p}.
$$

例如 $p=4,q=3$，分母为 $8+6-12=2$，所以 $E=12$、$V=8$、$F=6$。

### 3.2 为什么正六边形不行

正六边形每角 $120^\circ$，至少三面相交就达到 $360^\circ$，不满足凸顶点的严格不等式。边数更多的正多边形内角更大，也被排除。

这里排除的是三维凸正多面体；不排除平面铺砌，也没有在讨论允许自交的星形正多面体。

<a id="chapter-4"></a>

## 第 4 章：只需简单多边形的分割定理

[返回目录](#reading-toc)

### 4.1 精确陈述

简单闭折线是由有限条线段首尾相接组成的闭合曲线，除了相邻线段的共同端点，没有其他交点。共线的多余中间顶点可以删去。

**简单多边形分割定理：** 平面去掉这样一条闭折线后，恰好剩下两个连通区域，一个有界，一个无界；曲线是两个区域共同的边界。任意一个边内部小点附近，边的两侧分别属于这两个区域。

这是若尔当曲线定理的多边形情形。一般定理允许任意简单闭曲线，本文用不到那样的一般性。下面给出有限线段情形的证明，并把“至少两个”与“至多两个”分开。

### 4.2 有限线段的窄带构造

沿闭折线选定一个行进方向。每条边内部都有左侧和右侧；绕过一个顶点时，左侧小路和下一条边的左侧小路在该顶点的小圆盘中接起来，右侧也如此。

为什么能选得足够窄？先给有限多个顶点选两两不交的小圆盘，每个圆盘只遇到该顶点的两条关联边；再给圆盘外的各边中段选窄矩形。互不相交的非关联紧线段之间距离为正，且只有有限对，所以这些矩形可以避开所有其他边。在每个顶点盘内，两条半径把圆盘分为两个扇形，分别接通相应的两条侧路。

于是整圈形成两条互不相交、各自连通的侧路：一条始终沿左侧，一条始终沿右侧。这个局部构造只用了线段、圆盘和正距离；没有预先假定多边形已有内外两区。

<figure class="proof-figure" id="fig-polygon-collar"><div class="diagram-scroll"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 760 325" role="img" aria-label="fig-polygon-collar" style="width:100%;height:auto;display:block"><defs><marker id="fig-polygon-collar-arrow" markerWidth="8" markerHeight="8" refX="7" refY="3" orient="auto"><path d="M0 0L7 3L0 6Z" fill="#2b806b"/></marker></defs><path d="M90 75H285V255H90Z" fill="none" stroke="#286786" stroke-width="4" stroke-linejoin="round" stroke-linecap="round"/><path d="M108 93H267V237H108Z" fill="none" stroke="#2b806b" stroke-width="3" stroke-linejoin="round" stroke-linecap="round"/><path d="M75 60H300V270H75Z" fill="none" stroke="#c48a28" stroke-width="3" stroke-linejoin="round" stroke-linecap="round"/><circle cx="90" cy="75" r="32" fill="none" stroke="#6d8391" stroke-width="1"/><text x="187" y="165" font-size="18" fill="#29495d" text-anchor="middle" font-weight="normal">原来的闭折线</text><path d="M187 180L187 249" fill="none" stroke="#6d8391" stroke-width="1" stroke-linejoin="round" stroke-linecap="round"/><text x="365" y="75" font-size="18" fill="#29495d" text-anchor="start" font-weight="normal">蓝：多边形边界</text><text x="365" y="109" font-size="18" fill="#29495d" text-anchor="start" font-weight="normal">绿、金：两条连通侧路</text><text x="365" y="143" font-size="18" fill="#29495d" text-anchor="start" font-weight="normal">角点小圆盘把相邻侧路接通</text><text x="365" y="177" font-size="18" fill="#29495d" text-anchor="start" font-weight="normal">非关联边相距为正</text><text x="365" y="211" font-size="18" fill="#29495d" text-anchor="start" font-weight="normal">所以窄带可以避开其他边</text><text x="187" y="310" font-size="15" fill="#29495d" text-anchor="middle" font-weight="normal">图用矩形示意；凹角也在小圆盘中接通</text></svg></div><figcaption>图 3｜把闭折线想成一条很窄的道路：两侧各有一条不中断的路。有限性保证窄带不会误碰远处的边。</figcaption></figure>

### 4.3 为什么至多两个区域

取补集中的任意点 $X$，选边内部一点 $M$，用一般位置的折线路径从 $X$ 走向 $M$：避开顶点，且不沿边行走。选取它第一次碰到多边形的位置；在碰到之前，这条路完全在补集中。

首次相遇位于某条边内部，从该边的一侧接近。因此 $X$ 可以在补集中连接到刚才构造的左侧路或右侧路。每一侧路自身连通，所以补集至多有两个连通区域。

这里“任意点都能接到某侧路”比“曲线附近有两侧”更强；后者单独不能排除远处还有第三个区域。

<figure class="proof-figure" id="fig-first-hit"><div class="diagram-scroll"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 760 290" role="img" aria-label="fig-first-hit" style="width:100%;height:auto;display:block"><defs><marker id="fig-first-hit-arrow" markerWidth="8" markerHeight="8" refX="7" refY="3" orient="auto"><path d="M0 0L7 3L0 6Z" fill="#2b806b"/></marker></defs><path d="M95 55H300V245H95Z" fill="none" stroke="#286786" stroke-width="4" stroke-linejoin="round" stroke-linecap="round"/><path d="M108 68H287V232H108Z" fill="none" stroke="#2b806b" stroke-width="2" stroke-linejoin="round" stroke-linecap="round" stroke-dasharray="5 4"/><path d="M83 43H312V257H83Z" fill="none" stroke="#c48a28" stroke-width="2" stroke-linejoin="round" stroke-linecap="round" stroke-dasharray="5 4"/><path d="M35 190L55 125L95 125" fill="none" stroke="#c48a28" stroke-width="3" stroke-linejoin="round" stroke-linecap="round" marker-end="url(#fig-first-hit-arrow)"/><circle cx="35" cy="190" r="5" fill="#c48a28" stroke="#c48a28" stroke-width="2"/><text x="16" y="214" font-size="18" fill="#29495d" text-anchor="start" font-weight="normal">X</text><circle cx="95" cy="125" r="5" fill="#ba514f" stroke="#ba514f" stroke-width="2"/><text x="106" y="126" font-size="15" fill="#ba514f" text-anchor="start" font-weight="normal">首次相遇</text><path d="M190 170L235 200L300 200" fill="none" stroke="#2b806b" stroke-width="3" stroke-linejoin="round" stroke-linecap="round" marker-end="url(#fig-first-hit-arrow)"/><circle cx="190" cy="170" r="5" fill="#2b806b" stroke="#2b806b" stroke-width="2"/><text x="170" y="157" font-size="18" fill="#29495d" text-anchor="start" font-weight="normal">Y</text><text x="365" y="65" font-size="18" fill="#29495d" text-anchor="start" font-weight="normal">从任意一点走向边界</text><text x="365" y="99" font-size="18" fill="#29495d" text-anchor="start" font-weight="normal">只保留第一次碰到边界前的路</text><text x="365" y="133" font-size="18" fill="#29495d" text-anchor="start" font-weight="normal">这段路始终没有跨越边界</text><text x="365" y="167" font-size="18" fill="#29495d" text-anchor="start" font-weight="normal">终点接到某一侧路</text><text x="365" y="201" font-size="18" fill="#29495d" text-anchor="start" font-weight="normal">因此不会漏掉“第三个分支”</text></svg></div><figcaption>图 4｜“至多两个”的关键不是只看边附近，而是把任意远处的点，都接回两条侧路之一。</figcaption></figure>

### 4.4 为什么两侧不能再绕路相通

选一条不平行于任何边的固定射线方向。对一般位置的点 $X$，数从 $X$ 沿此方向射出的射线与多边形相交的次数，只记录奇偶性。

当起点在不碰多边形的情况下作小幅移动时，交点正常移动；射线越过一个顶点方向时，两条关联边的交点要么同时出现或消失，要么一个交点换到另一条边，因此奇偶性不变。射线经过顶点的特殊位置用邻近一般位置定义，左右值一致。

<figure class="proof-figure" id="fig-ray-parity"><div class="diagram-scroll"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 760 300" role="img" aria-label="fig-ray-parity" style="width:100%;height:auto;display:block"><defs><marker id="fig-ray-parity-arrow" markerWidth="8" markerHeight="8" refX="7" refY="3" orient="auto"><path d="M0 0L7 3L0 6Z" fill="#2b806b"/></marker></defs><text x="180" y="28" font-size="18" fill="#29495d" text-anchor="middle" font-weight="normal">射线向右：内点一次，外点两次</text><path d="M90 65H290V235H90Z" fill="#eef5f8" stroke="#286786" stroke-width="3" stroke-linejoin="round" stroke-linecap="round"/><path d="M160 120L335 120" fill="none" stroke="#2b806b" stroke-width="3" stroke-linejoin="round" stroke-linecap="round" marker-end="url(#fig-ray-parity-arrow)"/><circle cx="160" cy="120" r="5" fill="#2b806b" stroke="#2b806b" stroke-width="2"/><circle cx="290" cy="120" r="5" fill="#ba514f" stroke="#ba514f" stroke-width="2"/><text x="145" y="108" font-size="18" fill="#29495d" text-anchor="start" font-weight="normal">X</text><text x="225" y="101" font-size="16" fill="#2b806b" text-anchor="start" font-weight="normal">1 次：奇</text><path d="M40 195L335 195" fill="none" stroke="#2b806b" stroke-width="3" stroke-linejoin="round" stroke-linecap="round" marker-end="url(#fig-ray-parity-arrow)"/><circle cx="40" cy="195" r="5" fill="#2b806b" stroke="#2b806b" stroke-width="2"/><circle cx="90" cy="195" r="5" fill="#ba514f" stroke="#ba514f" stroke-width="2"/><circle cx="290" cy="195" r="5" fill="#ba514f" stroke="#ba514f" stroke-width="2"/><text x="25" y="220" font-size="18" fill="#29495d" text-anchor="start" font-weight="normal">Y</text><text x="155" y="221" font-size="16" fill="#29495d" text-anchor="start" font-weight="normal">2 次：偶</text><text x="565" y="28" font-size="18" fill="#29495d" text-anchor="middle" font-weight="normal">射线越过顶点：交点成对变化</text><path d="M455 70L560 175L665 70" fill="none" stroke="#286786" stroke-width="4" stroke-linejoin="round" stroke-linecap="round"/><path d="M420 125L710 125" fill="none" stroke="#2b806b" stroke-width="3" stroke-linejoin="round" stroke-linecap="round" stroke-dasharray="6 4" marker-end="url(#fig-ray-parity-arrow)"/><circle cx="510" cy="125" r="5" fill="#ba514f" stroke="#ba514f" stroke-width="2"/><circle cx="610" cy="125" r="5" fill="#ba514f" stroke="#ba514f" stroke-width="2"/><path d="M420 205L710 205" fill="none" stroke="#c48a28" stroke-width="3" stroke-linejoin="round" stroke-linecap="round" stroke-dasharray="6 4"/><text x="704" y="113" font-size="16" fill="#29495d" text-anchor="start" font-weight="normal">2</text><text x="704" y="229" font-size="16" fill="#29495d" text-anchor="start" font-weight="normal">0</text><text x="565" y="265" font-size="17" fill="#29495d" text-anchor="middle" font-weight="normal">局部 2 ↔ 0，奇偶性不变</text></svg></div><figcaption>图 5｜左图说明奇偶标签能区分两侧；右图只画顶点附近的局部变化，新增或消失的交点成对出现，不改变奇偶性。</figcaption></figure>

这给补集上一个局部不变的奇偶标签。沿任何连续路径，该标签都不变。可选边内部一点，使经过它的测试直线不经过任何顶点；在该点两侧取充分近的两点，两条射线的交点数相差一。因此两侧标签不同，不能在补集中连通。

结合“至多两个”，恰好两个。多边形是有界的，大圆盘外的区域连通，故至多有一个无界分支；另一分支有界。每条边的两侧分别接到两区，顶点用相邻边逼近，得到共同边界的结论。

> 奇偶性只负责区分两侧；窄带和首次相遇论证负责排除第三个分支。只讲“射线相交次数一奇一偶”并没有单独完成整个证明。

<a id="chapter-5"></a>

## 第 5 章：凸多面体怎样变成直线平面图

[返回目录](#reading-toc)

### 5.1 透视投影，而非剪开展开

选择凸多面体的一个面 $f$，在该面相对内部一点的外侧选一个充分靠近的观察点 $S$。选得足够近时，$S$ 只违反面 $f$ 的半空间约束，仍严格满足所有其他面的约束。

从 $S$ 向面 $f$ 的内部发出一条射线：它先穿过 $f$ 进入凸体，再从另一处边界离开。凸性保证射线与凸体的交集是一个线段，所以不会反复进出。反过来，其他面的点投到 $f$ 所在平面时，投影都落在 $f$ 内。

因此，将除 $f$ 内部外的表面投影到 $f$ 的平面，得到嵌在面 $f$ 轮廓内的图。不同的内部边不会交叉：若交叉，就意味着同一条视线有两个不同的离开点。直线透视投影仍是直线，所以图中的边可以取线段。这种图称为 Schlegel 图。

<svg viewBox="0 0 680 245" role="img" aria-label="立方体的平面图，外框和内框各有四个顶点，对应角相连" style="width:100%;max-width:680px;display:block;margin:24px auto"><rect x="45" y="25" width="225" height="185" fill="#edf4f8" stroke="#286786" stroke-width="3"/><rect x="105" y="75" width="105" height="85" fill="#d5e7ef" stroke="#286786" stroke-width="3"/><path d="M45 25L105 75M270 25L210 75M270 210L210 160M45 210L105 160" stroke="#286786" stroke-width="3"/><g fill="#286786"><circle cx="45" cy="25" r="5"/><circle cx="270" cy="25" r="5"/><circle cx="270" cy="210" r="5"/><circle cx="45" cy="210" r="5"/><circle cx="105" cy="75" r="5"/><circle cx="210" cy="75" r="5"/><circle cx="210" cy="160" r="5"/><circle cx="105" cy="160" r="5"/></g><g fill="#29495d" font-size="18"><text x="320" y="65">立方体：8 个顶点，12 条边</text><text x="320" y="105">图内有 5 个有界区域</text><text x="320" y="145">外部无界区域也算一个面</text><text x="320" y="185">所以 F = 5 + 1 = 6</text></g></svg>

### 5.2 为什么面数没有少一个

未选中的面对应图内有界区域；选中的面 $f$ 对应图外无界区域。因此总面数仍是原来的 $F$，顶点和棱也保持一一对应。不能一边删掉一个面，一边又忘记把外部区域计入。

原多面体的边图连通：例如各面沿公共棱连接成整张凸体表面，每个面的边界连通；也可从凸体表面径向投到球面看出表面连通，面间的连续路线可以绕开有限个顶点而依次跨棱。故得到有限、连通的直线平面图。

下文的面，统一定义为平面去掉图后的连通分支，包括无界分支。平面开集的连通分支都是折线道路连通的：固定一点，能用有限折线到达的点组成开集，其余点也组成开集；连通性迫使后者为空。这一事实让后面的“选一条折线路径”有了依据。

<a id="chapter-6"></a>

## 第 6 章：树为什么有 V−1 条边

[返回目录](#reading-toc)

### 6.1 树与生成树

树是有限、连通且没有简单回路的图。生成树保留原图全部顶点，只选取一部分边，并形成树。

生成树为什么存在？只要当前连通图还有回路，就删去回路上的一条边。该边两端仍能沿回路剩余部分连接，所以连通性不变。边数有限，删除过程终止，最后就是生成树。这个构造还没有用到面数或欧拉公式。

### 6.2 用最长路径找叶子

叶子是度数为 $1$ 的顶点。至少有两个顶点的有限树中，选一条顶点不重复的最长路径，考虑端点 $A$。

$A$ 至少有一条相邻边。假如它还有另一条边通向 $B$：若 $B$ 不在路径上，就能延长路径；若 $B$ 在路径上，就形成回路。两者都矛盾。因此 $A$ 恰好只有一条相邻边。

<figure class="proof-figure" id="fig-longest-path"><div class="diagram-scroll"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 760 310" role="img" aria-label="fig-longest-path" style="width:100%;height:auto;display:block"><defs><marker id="fig-longest-path-arrow" markerWidth="8" markerHeight="8" refX="7" refY="3" orient="auto"><path d="M0 0L7 3L0 6Z" fill="#2b806b"/></marker></defs><path d="M65 150L155 100L245 155L325 110" fill="none" stroke="#286786" stroke-width="4" stroke-linejoin="round" stroke-linecap="round"/><circle cx="65" cy="150" r="5" fill="#286786" stroke="#286786" stroke-width="2"/><circle cx="155" cy="100" r="5" fill="#286786" stroke="#286786" stroke-width="2"/><circle cx="245" cy="155" r="5" fill="#286786" stroke="#286786" stroke-width="2"/><circle cx="325" cy="110" r="5" fill="#286786" stroke="#286786" stroke-width="2"/><text x="50" y="138" font-size="18" fill="#29495d" text-anchor="start" font-weight="normal">A</text><path d="M445 150L535 100L625 155L705 110" fill="none" stroke="#286786" stroke-width="4" stroke-linejoin="round" stroke-linecap="round"/><circle cx="445" cy="150" r="5" fill="#286786" stroke="#286786" stroke-width="2"/><circle cx="535" cy="100" r="5" fill="#286786" stroke="#286786" stroke-width="2"/><circle cx="625" cy="155" r="5" fill="#286786" stroke="#286786" stroke-width="2"/><circle cx="705" cy="110" r="5" fill="#286786" stroke="#286786" stroke-width="2"/><text x="430" y="138" font-size="18" fill="#29495d" text-anchor="start" font-weight="normal">A</text><path d="M65 150L45 230" fill="none" stroke="#c48a28" stroke-width="4" stroke-linejoin="round" stroke-linecap="round"/><circle cx="45" cy="230" r="5" fill="#c48a28" stroke="#c48a28" stroke-width="2"/><text x="40" y="258" font-size="16" fill="#29495d" text-anchor="start" font-weight="normal">新点 B</text><text x="190" y="285" font-size="17" fill="#29495d" text-anchor="middle" font-weight="normal">通向路径外 → 路径还能延长</text><path d="M445 150Q535 245 625 155" fill="none" stroke="#ba514f" stroke-width="4" stroke-linejoin="round" stroke-linecap="round"/><text x="570" y="255" font-size="17" fill="#29495d" text-anchor="middle" font-weight="normal">连回路径内 → 出现回路</text><text x="380" y="28" font-size="20" fill="#29495d" text-anchor="middle" font-weight="normal">最长简单路径端点 A 不可能还有第二条边</text></svg></div><figcaption>图 6｜叶子存在的两个反证分支：第二条边若通向新点，违背最长；若通向旧点，违背无回路。</figcaption></figure>

删除叶子及其边后，剩下的图仍连通：两个剩余顶点间的简单路径不可能以叶子作中间点；也仍无回路。

<figure class="proof-figure" id="fig-delete-leaf"><div class="diagram-scroll"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 760 285" role="img" aria-label="fig-delete-leaf" style="width:100%;height:auto;display:block"><defs><marker id="fig-delete-leaf-arrow" markerWidth="8" markerHeight="8" refX="7" refY="3" orient="auto"><path d="M0 0L7 3L0 6Z" fill="#2b806b"/></marker></defs><text x="190" y="28" font-size="18" fill="#29495d" text-anchor="middle" font-weight="normal">删去一个叶子及它唯一的边</text><path d="M65 150H155L245 80M155 150L245 215M155 150H315" fill="none" stroke="#286786" stroke-width="3" stroke-linejoin="round" stroke-linecap="round"/><circle cx="65" cy="150" r="5" fill="#286786" stroke="#286786" stroke-width="2"/><circle cx="155" cy="150" r="5" fill="#286786" stroke="#286786" stroke-width="2"/><circle cx="245" cy="80" r="5" fill="#286786" stroke="#286786" stroke-width="2"/><circle cx="245" cy="215" r="5" fill="#286786" stroke="#286786" stroke-width="2"/><path d="M155 150L315 150" fill="none" stroke="#c48a28" stroke-width="5" stroke-linejoin="round" stroke-linecap="round"/><circle cx="315" cy="150" r="7" fill="#c48a28" stroke="#c48a28" stroke-width="2"/><text x="315" y="128" font-size="18" fill="#c48a28" text-anchor="middle" font-weight="normal">叶子</text><text x="190" y="260" font-size="20" fill="#29495d" text-anchor="middle" font-weight="normal">V = 5，E = 4</text><path d="M435 150H525L615 80M525 150L615 215" fill="none" stroke="#286786" stroke-width="3" stroke-linejoin="round" stroke-linecap="round"/><circle cx="435" cy="150" r="5" fill="#286786" stroke="#286786" stroke-width="2"/><circle cx="525" cy="150" r="5" fill="#286786" stroke="#286786" stroke-width="2"/><circle cx="615" cy="80" r="5" fill="#286786" stroke="#286786" stroke-width="2"/><circle cx="615" cy="215" r="5" fill="#286786" stroke="#286786" stroke-width="2"/><text x="560" y="260" font-size="20" fill="#29495d" text-anchor="middle" font-weight="normal">V = 4，E = 3</text><path d="M350 150L405 150" fill="none" stroke="#2b806b" stroke-width="3" stroke-linejoin="round" stroke-linecap="round" marker-end="url(#fig-delete-leaf-arrow)"/><text x="560" y="28" font-size="18" fill="#29495d" text-anchor="middle" font-weight="normal">剩下仍连通，也没有回路</text></svg></div><figcaption>图 7｜每次删除都让顶点数和边数同时减一。一直删到单点，反过来就得到 E = V−1。</figcaption></figure>

### 6.3 归纳计数

单顶点树的边数为 $0$。对 $V\ge2$，删掉一个叶子及其边，剩下 $V-1$ 个顶点。由归纳假设，剩下 $V-2$ 条边，加回被删的一条：

$$
E=(V-2)+1=V-1.
$$

这比“每加入一个顶点就加一条边”完整，因为我们先证明了任意有限树都确实可以按这种方式逐步拆开。

<a id="chapter-7"></a>

## 第 7 章：树为什么只有一个面

[返回目录](#reading-toc)

### 7.1 有限线段的绕行引理

设在一个直线平面图上增加一条线段 $AB$：$A$ 是已有顶点，$B$ 是新顶点，线段除 $A$ 外不碰原图。这样的边是悬挂边。增加它不会改变补集的连通分支数。

证明要解释为什么两侧仍能互通。它的内部和新端点都位于原图的同一个面 $\Omega$。取该面中避开新线段的任意两点，先在 $\Omega$ 中用折线连接；稍作扰动，让它与新线段只在有限个内部点横交，且避开 $A,B$。

若路径穿过线段，可以沿线段一侧走向自由端 $B$，绕 $B$ 一个小半圆，再沿另一侧返回，替代原来的穿越。路径与线段的交点有限，并且全离 $A$ 有正距离，故只需在远离 $A$ 的紧子线段周围选一个避开原图的窄通道。这个通道连同 $B$ 的小圆盘完全在 $\Omega$ 内。

逐次替换有限个穿越，得到完全避开新线段的路径。因此 $\Omega$ 没有被分裂。其他面没有受到影响，且增加障碍不能把原本不同的面合并，所以面数不变。

<figure class="proof-figure" id="fig-leaf-detour"><div class="diagram-scroll"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 760 320" role="img" aria-label="fig-leaf-detour" style="width:100%;height:auto;display:block"><defs><marker id="fig-leaf-detour-arrow" markerWidth="8" markerHeight="8" refX="7" refY="3" orient="auto"><path d="M0 0L7 3L0 6Z" fill="#2b806b"/></marker></defs><path d="M40 65L100 150L40 245M100 150H300" fill="none" stroke="#286786" stroke-width="4" stroke-linejoin="round" stroke-linecap="round"/><circle cx="100" cy="150" r="6" fill="#286786" stroke="#286786" stroke-width="2"/><circle cx="300" cy="150" r="6" fill="#286786" stroke="#286786" stroke-width="2"/><text x="83" y="177" font-size="18" fill="#29495d" text-anchor="start" font-weight="normal">A</text><text x="303" y="177" font-size="18" fill="#29495d" text-anchor="start" font-weight="normal">B</text><path d="M200 65V235" fill="none" stroke="#ba514f" stroke-width="2" stroke-linejoin="round" stroke-linecap="round" stroke-dasharray="6 5"/><circle cx="200" cy="150" r="5" fill="#ba514f" stroke="#ba514f" stroke-width="2"/><path d="M200 65L200 113H300Q340 113 340 150Q340 187 300 187H200V235" fill="none" stroke="#2b806b" stroke-width="4" stroke-linejoin="round" stroke-linecap="round" marker-end="url(#fig-leaf-detour-arrow)"/><text x="390" y="75" font-size="18" fill="#29495d" text-anchor="start" font-weight="normal">红虚线：原路会撞上新边</text><text x="390" y="109" font-size="18" fill="#29495d" text-anchor="start" font-weight="normal">绿线：沿边走向自由端 B</text><text x="390" y="143" font-size="18" fill="#29495d" text-anchor="start" font-weight="normal">绕过 B，再从另一侧返回</text><text x="390" y="177" font-size="18" fill="#29495d" text-anchor="start" font-weight="normal">窄通道远离附着点 A</text><text x="390" y="211" font-size="18" fill="#29495d" text-anchor="start" font-weight="normal">所以新边两侧仍然相通</text><text x="175" y="290" font-size="17" fill="#2b806b" text-anchor="middle" font-weight="normal">只有 B 是可以绕过去的自由端</text></svg></div><figcaption>图 8｜树不分割平面的核心动作：把一次“穿过边”替换成“绕自由端”。这一步可对有限多个交点逐一进行。</figcaption></figure>

### 7.2 为什么“没有回路”不是充分的解释文字

“没有回路，所以没有围出区域”描述的是正确图景，但直接把它当作理由，仍然省略了平面连通性的论证。上面的自由端绕行给出可逐步检查的依据。

单个点的补集连通：连接任意两点的折线若碰到它，绕一个小圆弧即可避开。从单顶点树出发，按第 6 章删除叶子的逆过程，逐条增加悬挂边；每一步面数不变，所以

$$
\boxed{F_{\mathrm{tree}}=1}.
$$

这里没有用欧拉公式倒推，因此不存在循环论证。

<a id="chapter-8"></a>

## 第 8 章：加回一条边为什么恰好多一个面

[返回目录](#reading-toc)

### 8.1 条件必须说全

设 $G$ 已经有限、连通且直线嵌入平面。增加一条边 $e=AB$，两端 $A,B$ 是不同的已有顶点；内部不碰原图。我们要证明

$$
F(G+e)=F(G)+1.
$$

$e$ 的内部是连通的，又完全在补集中，所以它位于某一个原面 $\Omega$ 内。其他面的内部没有被改变，因此只需研究 $\Omega\setminus e$。

<svg viewBox="0 0 680 215" role="img" aria-label="先有一条从 A 到 B 的折线路径，再加回底边 AB，形成一个简单多边形" style="width:100%;max-width:680px;display:block;margin:24px auto"><path d="M45 165L95 45L225 45L275 165" fill="none" stroke="#286786" stroke-width="4"/><path d="M45 165H275" stroke="#c68a29" stroke-width="4" stroke-dasharray="9 6"/><g fill="#286786"><circle cx="45" cy="165" r="5"/><circle cx="95" cy="45" r="5"/><circle cx="225" cy="45" r="5"/><circle cx="275" cy="165" r="5"/></g><g fill="#29495d" font-size="18"><text x="32" y="195">A</text><text x="268" y="195">B</text><text x="350" y="65">蓝线：已有简单路径 P</text><text x="350" y="105">金线：加回的新边 e</text><text x="350" y="145">P 与 e 合起来成为简单闭折线</text><text x="350" y="185">其他已有边可以在图中继续延伸</text></g></svg>

### 8.2 至少分成两个面

由于 $G$ 连通，原图中存在从 $A$ 到 $B$ 的简单路径 $P$。路径不重复顶点，原图边不交叉，而 $e$ 的内部不碰原图，所以 $P\cup e$ 是简单闭折线。

由第 4 章的多边形分割定理，这条闭折线的两侧不连通。在新边中点附近，选一个小圆盘，避开所有原图；盘内新边两侧的点 $X,Y$ 原来都在 $\Omega$，现在却分别位于闭折线的两区。

任何避开 $G+e$ 的路径也必避开 $P\cup e$，故不能连接 $X,Y$。因此 $\Omega$ 至少分成两个面。

<figure class="proof-figure" id="fig-edge-split"><div class="diagram-scroll"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 760 300" role="img" aria-label="fig-edge-split" style="width:100%;height:auto;display:block"><defs><marker id="fig-edge-split-arrow" markerWidth="8" markerHeight="8" refX="7" refY="3" orient="auto"><path d="M0 0L7 3L0 6Z" fill="#2b806b"/></marker></defs><path d="M75 215L115 65H285L325 215Z" fill="#e6f1f4" stroke="#286786" stroke-width="3" stroke-linejoin="round" stroke-linecap="round"/><path d="M75 215L325 215" fill="none" stroke="#c48a28" stroke-width="5" stroke-linejoin="round" stroke-linecap="round"/><circle cx="75" cy="215" r="5" fill="#286786" stroke="#286786" stroke-width="2"/><circle cx="325" cy="215" r="5" fill="#286786" stroke="#286786" stroke-width="2"/><text x="57" y="244" font-size="18" fill="#29495d" text-anchor="start" font-weight="normal">A</text><text x="327" y="244" font-size="18" fill="#29495d" text-anchor="start" font-weight="normal">B</text><circle cx="200" cy="190" r="6" fill="#2b806b" stroke="#2b806b" stroke-width="2"/><text x="213" y="190" font-size="18" fill="#29495d" text-anchor="start" font-weight="normal">X</text><circle cx="200" cy="247" r="6" fill="#ba514f" stroke="#ba514f" stroke-width="2"/><text x="213" y="252" font-size="18" fill="#29495d" text-anchor="start" font-weight="normal">Y</text><text x="200" y="287" font-size="15" fill="#29495d" text-anchor="middle" font-weight="normal">X、Y 原来同面；加边后被闭回路隔开</text><text x="385" y="75" font-size="18" fill="#29495d" text-anchor="start" font-weight="normal">上方蓝线：已有简单路径 P</text><text x="385" y="109" font-size="18" fill="#29495d" text-anchor="start" font-weight="normal">下方金线：加回的新边 e</text><text x="385" y="143" font-size="18" fill="#29495d" text-anchor="start" font-weight="normal">P ∪ e 围成简单多边形</text><text x="385" y="177" font-size="18" fill="#29495d" text-anchor="start" font-weight="normal">新边两侧的 X、Y 无法互通</text><text x="385" y="211" font-size="18" fill="#29495d" text-anchor="start" font-weight="normal">这证明“至少两个”</text></svg></div><figcaption>图 9｜同样是加一条边，这次没有自由端：两端早已被旧路径连起来，绕过端点也无法逃开整个闭回路。</figcaption></figure>

### 8.3 至多分成两个面

沿新边内部有左右两条侧通道。这里不要求有一个固定宽度一直延伸到端点：只需任意两个内部位置间的紧子线段周围有避开原图的窄矩形，就能在同侧相互连接。原图只有有限条线段，且与这段紧子线段不相交，所以这样的宽度存在。

取 $\Omega\setminus e$ 中任意一点 $Z$。由于 $\Omega$ 折线道路连通，可以在 $\Omega$ 中用折线走向新边中点；扰动路径，使它避开端点并横交线段。考察第一次碰到 $e$ 之前的部分，它把 $Z$ 接到新边某一侧的通道。

所以每个新分支都接到左侧通道或右侧通道；每一侧自身连通，至多对应一个分支。因此至多两个。

<figure class="proof-figure" id="fig-two-side-channels"><div class="diagram-scroll"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 760 300" role="img" aria-label="fig-two-side-channels" style="width:100%;height:auto;display:block"><defs><marker id="fig-two-side-channels-arrow" markerWidth="8" markerHeight="8" refX="7" refY="3" orient="auto"><path d="M0 0L7 3L0 6Z" fill="#2b806b"/></marker></defs><rect x="30" y="50" width="330" height="205" rx="8" fill="#f3f7f9" stroke="#d5e2e9"/><path d="M75 155L320 155" fill="none" stroke="#c48a28" stroke-width="5" stroke-linejoin="round" stroke-linecap="round"/><circle cx="75" cy="155" r="5" fill="#286786" stroke="#286786" stroke-width="2"/><circle cx="320" cy="155" r="5" fill="#286786" stroke="#286786" stroke-width="2"/><text x="65" y="183" font-size="18" fill="#29495d" text-anchor="start" font-weight="normal">A</text><text x="315" y="183" font-size="18" fill="#29495d" text-anchor="start" font-weight="normal">B</text><path d="M95 140L300 140" fill="none" stroke="#2b806b" stroke-width="3" stroke-linejoin="round" stroke-linecap="round"/><path d="M95 170L300 170" fill="none" stroke="#286786" stroke-width="3" stroke-linejoin="round" stroke-linecap="round"/><path d="M155 80L240 105L240 140" fill="none" stroke="#2b806b" stroke-width="3" stroke-linejoin="round" stroke-linecap="round" marker-end="url(#fig-two-side-channels-arrow)"/><circle cx="155" cy="80" r="5" fill="#2b806b" stroke="#2b806b" stroke-width="2"/><text x="136" y="72" font-size="18" fill="#29495d" text-anchor="start" font-weight="normal">Z₁</text><path d="M145 230L205 210L205 170" fill="none" stroke="#2b806b" stroke-width="3" stroke-linejoin="round" stroke-linecap="round" marker-end="url(#fig-two-side-channels-arrow)"/><circle cx="145" cy="230" r="5" fill="#286786" stroke="#286786" stroke-width="2"/><text x="122" y="251" font-size="18" fill="#29495d" text-anchor="start" font-weight="normal">Z₂</text><text x="390" y="75" font-size="18" fill="#29495d" text-anchor="start" font-weight="normal">灰底：原来的同一个面 Ω</text><text x="390" y="109" font-size="18" fill="#29495d" text-anchor="start" font-weight="normal">任意点沿原面走向新边</text><text x="390" y="143" font-size="18" fill="#29495d" text-anchor="start" font-weight="normal">首次碰边前，接到一侧通道</text><text x="390" y="177" font-size="18" fill="#29495d" text-anchor="start" font-weight="normal">同侧各点可沿窄通道相连</text><text x="390" y="211" font-size="18" fill="#29495d" text-anchor="start" font-weight="normal">因此每侧至多一个分支</text></svg></div><figcaption>图 10｜“至多两个”另有理由：所有新分支都必须接到上、下两条通道之一。通道只沿边内部走，不要求在端点处保持固定宽度。</figcaption></figure>

### 8.4 合并结论

至少两个且至多两个，故一个原面恰好分为两个；其他面不变。这才得到

$$
\Delta V=0,\qquad\Delta E=1,\qquad\Delta F=1.
$$

只引用“闭曲线有内外两区”足以帮助区分两侧，却不能代替第 8.3 节对其他分支的排除。另一个重要条件是连通性：如果新边连接两个不同连通分量，它可能只是把分量接起来，并不产生新面。

<a id="chapter-9"></a>

## 第 9 章：完成欧拉公式的证明

[返回目录](#reading-toc)

### 9.1 从生成树加回原图

取连通直线平面图 $G$ 的一棵生成树 $T$。第 6—7 章证明了

$$
E(T)=V-1,\qquad F(T)=1.
$$

所以对这棵树，$V-E(T)+F(T)=V-(V-1)+1=2$。

现在依次加回原图中不属于树的边。因为始终保留着生成树，当前图始终连通；由于加回的都是原来平面图的边，也不会发生交叉。因此每一步都满足第 8 章的条件：边数和面数同时增加一，顶点数不变。

$$
\Delta(V-E+F)=0-1+1=0.
$$

<figure class="proof-figure" id="fig-euler-invariant"><div class="diagram-scroll"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 760 290" role="img" aria-label="fig-euler-invariant" style="width:100%;height:auto;display:block"><defs><marker id="fig-euler-invariant-arrow" markerWidth="8" markerHeight="8" refX="7" refY="3" orient="auto"><path d="M0 0L7 3L0 6Z" fill="#2b806b"/></marker></defs><text x="125" y="25" font-size="18" fill="#29495d" text-anchor="middle" font-weight="normal">生成树</text><path d="M45 180L45 70H200V180" fill="none" stroke="#286786" stroke-width="3" stroke-linejoin="round" stroke-linecap="round"/><circle cx="45" cy="180" r="5" fill="#286786" stroke="#286786" stroke-width="2"/><circle cx="45" cy="70" r="5" fill="#286786" stroke="#286786" stroke-width="2"/><circle cx="200" cy="70" r="5" fill="#286786" stroke="#286786" stroke-width="2"/><circle cx="200" cy="180" r="5" fill="#286786" stroke="#286786" stroke-width="2"/><text x="125" y="225" font-size="17" fill="#29495d" text-anchor="middle" font-weight="normal">V=4，E=3，F=1</text><text x="125" y="264" font-size="18" fill="#29495d" text-anchor="middle" font-weight="normal">V − E + F = 2</text><text x="375" y="25" font-size="18" fill="#29495d" text-anchor="middle" font-weight="normal">加回一条边</text><path d="M295 180L295 70H450V180" fill="none" stroke="#286786" stroke-width="3" stroke-linejoin="round" stroke-linecap="round"/><path d="M295 180L450 180" fill="none" stroke="#c48a28" stroke-width="4" stroke-linejoin="round" stroke-linecap="round"/><circle cx="295" cy="180" r="5" fill="#286786" stroke="#286786" stroke-width="2"/><circle cx="295" cy="70" r="5" fill="#286786" stroke="#286786" stroke-width="2"/><circle cx="450" cy="70" r="5" fill="#286786" stroke="#286786" stroke-width="2"/><circle cx="450" cy="180" r="5" fill="#286786" stroke="#286786" stroke-width="2"/><text x="375" y="225" font-size="17" fill="#29495d" text-anchor="middle" font-weight="normal">V=4，E=4，F=2</text><text x="375" y="264" font-size="18" fill="#29495d" text-anchor="middle" font-weight="normal">V − E + F = 2</text><text x="625" y="25" font-size="18" fill="#29495d" text-anchor="middle" font-weight="normal">再加回一条边</text><path d="M545 180L545 70H700V180" fill="none" stroke="#286786" stroke-width="3" stroke-linejoin="round" stroke-linecap="round"/><path d="M545 180L700 180" fill="none" stroke="#c48a28" stroke-width="4" stroke-linejoin="round" stroke-linecap="round"/><path d="M545 70L700 180" fill="none" stroke="#2b806b" stroke-width="4" stroke-linejoin="round" stroke-linecap="round"/><circle cx="545" cy="180" r="5" fill="#286786" stroke="#286786" stroke-width="2"/><circle cx="545" cy="70" r="5" fill="#286786" stroke="#286786" stroke-width="2"/><circle cx="700" cy="70" r="5" fill="#286786" stroke="#286786" stroke-width="2"/><circle cx="700" cy="180" r="5" fill="#286786" stroke="#286786" stroke-width="2"/><text x="625" y="225" font-size="17" fill="#29495d" text-anchor="middle" font-weight="normal">V=4，E=5，F=3</text><text x="625" y="264" font-size="18" fill="#29495d" text-anchor="middle" font-weight="normal">V − E + F = 2</text></svg></div><figcaption>图 11｜从同一组顶点出发：每加回一条边，就多一个面。减去的 E 与加上的 F 同时增一，差值不变。</figcaption></figure>

全部加回后得到

$$
\boxed{V-E+F=2}.
$$

也可直接数：一共加回 $E-(V-1)$ 条边，所以 $F=1+E-(V-1)=E-V+2$。

第 5 章给出凸多面体与这种平面图的对应，故凸多面体同样满足该式。这个证明没有依赖正多面体条件。

### 9.2 适用范围与常见误用

对具有 $c$ 个连通分量的有限平面图，公式是 $V-E+F=1+c$，仍把外部算一个面。可用每个分量的一棵树组成的生成森林重复上述计数；有限个互不相交的树的补集仍连通，用第 7 章绕行逐棵加入即可。

带孔的闭合多面体表面未必满足 $2$。对于连通、闭合、可定向的曲面，若有 $g$ 个柄，并采用每面都是圆盘的有限胞腔分解，则欧拉示性数为 $2-2g$。这是延伸背景，本文不证明，也不用于分类。

证明依赖关系是：有限线段的局部绕行与多边形分割 → 树的面数和加边引理 → 欧拉公式 → 正多面体的参数限制。没有从欧拉公式反推其中的引理。

<a id="chapter-10"></a>

## 第 10 章：顶点角和小于 360° 的几何证明

[返回目录](#reading-toc)

### 10.1 先证明空间夹角三角不等式

设 $u,v,w$ 是单位向量，令 $\alpha=\angle(u,v)$、$\beta=\angle(v,w)$、$\gamma=\angle(u,w)$，取值均在 $[0,\pi]$。目标是 $\gamma\le\alpha+\beta$。

<figure class="proof-figure" id="fig-angle-triangle"><div class="diagram-scroll"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 760 300" role="img" aria-label="fig-angle-triangle" style="width:100%;height:auto;display:block"><defs><marker id="fig-angle-triangle-arrow" markerWidth="8" markerHeight="8" refX="7" refY="3" orient="auto"><path d="M0 0L7 3L0 6Z" fill="#2b806b"/></marker></defs><text x="190" y="28" font-size="18" fill="#29495d" text-anchor="middle" font-weight="normal">方向夹角：直接转，或经中间方向转</text><path d="M80 230L310 230M80 230L270 135M80 230L160 55" fill="none" stroke="#286786" stroke-width="3" stroke-linejoin="round" stroke-linecap="round"/><text x="315" y="236" font-size="18" fill="#29495d" text-anchor="start" font-weight="normal">u</text><text x="279" y="137" font-size="18" fill="#29495d" text-anchor="start" font-weight="normal">v</text><text x="170" y="75" font-size="18" fill="#29495d" text-anchor="start" font-weight="normal">w</text><circle cx="80" cy="230" r="5" fill="#286786" stroke="#286786" stroke-width="2"/><path d="M170 230A90 90 0 0 0 160 190" fill="none" stroke="#c48a28" stroke-width="3" stroke-linejoin="round" stroke-linecap="round"/><text x="180" y="215" font-size="18" fill="#c48a28" text-anchor="start" font-weight="normal">α</text><path d="M195 172Q175 125 137 110" fill="none" stroke="#2b806b" stroke-width="3" stroke-linejoin="round" stroke-linecap="round"/><text x="179" y="140" font-size="18" fill="#2b806b" text-anchor="start" font-weight="normal">β</text><path d="M140 230Q135 175 105 173" fill="none" stroke="#286786" stroke-width="2" stroke-linejoin="round" stroke-linecap="round"/><text x="111" y="205" font-size="18" fill="#286786" text-anchor="start" font-weight="normal">γ</text><text x="385" y="75" font-size="18" fill="#29495d" text-anchor="start" font-weight="normal">图示共面且 v 在较小夹角内：</text><text x="385" y="109" font-size="18" fill="#29495d" text-anchor="start" font-weight="normal">γ = α + β</text><text x="385" y="143" font-size="18" fill="#29495d" text-anchor="start" font-weight="normal">空间不共面时，绕经 v 更长：</text><text x="385" y="177" font-size="18" fill="#29495d" text-anchor="start" font-weight="normal">γ &lt; α + β</text><text x="385" y="211" font-size="18" fill="#29495d" text-anchor="start" font-weight="normal">一般结论由后面的内积计算保证</text></svg></div><figcaption>图 12｜先把不等式读成“方向之间的距离”：经中间方向绕行，不会比直接转过去更短。图中画的是取等的共面情形，严格号要由非共面条件推出。</figcaption></figure>

若 $\alpha$ 或 $\beta$ 为 $0$，结论直接成立；若有一个为 $\pi$，则右边至少为 $\pi$，结论也成立。其余情形可写为

$$
u=\cos\alpha\,v+\sin\alpha\,a,\qquad
w=\cos\beta\,v+\sin\beta\,b,
$$

其中 $a,b$ 都是垂直于 $v$ 的单位向量。由 $a\cdot b\ge-1$，

$$
\cos\gamma=u\cdot w
\ge\cos\alpha\cos\beta-\sin\alpha\sin\beta
=\cos(\alpha+\beta).
$$

当 $\alpha+\beta\le\pi$ 时，用余弦在 $[0,\pi]$ 上严格递减，得出目标结论。当 $\alpha+\beta>\pi$ 时，直接用 $\gamma\le\pi<\alpha+\beta$，不在错误的区间反用余弦单调性。

若三个向量线性无关，$a,b$ 不可能反向，且 $\sin\alpha\sin\beta>0$，所以内积不等式严格。结合上面的分情况，得到 $\gamma<\alpha+\beta$。

### 10.2 用平面截去一个真正顶点

设凸多面体的顶点为 $O$，相邻棱有 $n$ 条。存在一个线性函数在 $O$ 处严格小于所有其他顶点：例如把 $O$ 处各关联面的向内距离函数相加，和为零仅可能位于这些支撑面的公共交点 $O$。充分靠近 $O$ 的小正水平面便能分离 $O$ 与其他顶点。

该平面逐条截到从 $O$ 发出的棱，形成凸 $n$ 边形 $A_1\cdots A_n$；在每个原面内截出三角形 $OA_iA_{i+1}$。各 $A_i$ 都是截面真正的顶点，相邻三点不共线。

<figure class="proof-figure" id="fig-vertex-section"><div class="diagram-scroll"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 760 345" role="img" aria-label="fig-vertex-section" style="width:100%;height:auto;display:block"><defs><marker id="fig-vertex-section-arrow" markerWidth="8" markerHeight="8" refX="7" refY="3" orient="auto"><path d="M0 0L7 3L0 6Z" fill="#2b806b"/></marker></defs><path d="M75 285L215 55L335 280L195 315Z" fill="#edf4f8" stroke="#286786" stroke-width="3" stroke-linejoin="round" stroke-linecap="round"/><path d="M215 55L195 315" fill="none" stroke="#286786" stroke-width="2" stroke-linejoin="round" stroke-linecap="round"/><path d="M75 285L150 245L335 280M215 55L150 245" fill="none" stroke="#6d8391" stroke-width="2" stroke-linejoin="round" stroke-linecap="round" stroke-dasharray="6 4"/><path d="M124 204.5L172.75 178.5L293 201.25L202 224Z" fill="#f6e7c9" stroke="#c48a28" stroke-width="3" stroke-linejoin="round" stroke-linecap="round"/><path d="M215 55L124 204.5" fill="none" stroke="#286786" stroke-width="3" stroke-linejoin="round" stroke-linecap="round"/><path d="M215 55L172.75 178.5" fill="none" stroke="#286786" stroke-width="3" stroke-linejoin="round" stroke-linecap="round" stroke-dasharray="5 4"/><path d="M215 55L293 201.25" fill="none" stroke="#286786" stroke-width="3" stroke-linejoin="round" stroke-linecap="round"/><path d="M215 55L202 224" fill="none" stroke="#286786" stroke-width="3" stroke-linejoin="round" stroke-linecap="round"/><circle cx="215" cy="55" r="5" fill="#286786" stroke="#286786" stroke-width="2"/><text x="225" y="52" font-size="18" fill="#29495d" text-anchor="start" font-weight="normal">O</text><text x="96" y="210" font-size="18" fill="#29495d" text-anchor="start" font-weight="normal">A₁</text><text x="300" y="207" font-size="18" fill="#29495d" text-anchor="start" font-weight="normal">A₃</text><text x="210" y="245" font-size="18" fill="#29495d" text-anchor="start" font-weight="normal">A₄</text><text x="145" y="170" font-size="18" fill="#29495d" text-anchor="start" font-weight="normal">A₂</text><text x="190" y="338" font-size="16" fill="#29495d" text-anchor="middle" font-weight="normal">金色平面截到所有从 O 发出的棱</text><text x="560" y="30" font-size="18" fill="#29495d" text-anchor="middle" font-weight="normal">截面放到纸上看：凸多边形</text><path d="M445 140L520 75L665 125L600 235L465 225Z" fill="#fcf0d9" stroke="#c48a28" stroke-width="3" stroke-linejoin="round" stroke-linecap="round"/><text x="425" y="143" font-size="18" fill="#29495d" text-anchor="start" font-weight="normal">A₁</text><text x="514" y="62" font-size="18" fill="#29495d" text-anchor="start" font-weight="normal">A₂</text><text x="674" y="131" font-size="18" fill="#29495d" text-anchor="start" font-weight="normal">A₃</text><text x="595" y="259" font-size="18" fill="#29495d" text-anchor="start" font-weight="normal">A₄</text><text x="435" y="244" font-size="18" fill="#29495d" text-anchor="start" font-weight="normal">A₅</text><text x="560" y="300" font-size="15" fill="#29495d" text-anchor="middle" font-weight="normal">左图画四棱锥；右图另示一般截面</text></svg></div><figcaption>图 13｜先用一张平面截掉顶点附近的小角：原来的各个面，在小棱锥中变成侧三角形。截面是平面凸多边形，内角和可以直接使用。</figcaption></figure>

记顶角 $\theta_i=\angle A_iOA_{i+1}$，底角为 $\alpha_i=\angle OA_iA_{i+1}$ 与 $\beta_i=\angle A_iA_{i+1}O$，下标循环。三角形内角和给出

$$
\sum_{i=1}^{n}\theta_i=n\pi-\sum_{i=1}^{n}(\alpha_i+\beta_i).
$$

在底面顶点 $A_i$，记底面内角为 $\gamma_i$。从 $A_i$ 指向 $A_{i-1},O,A_{i+1}$ 的三个向量线性无关：前后邻点决定截面平面，$O$ 不在此平面中。所以第 10.1 节给出

$$
\gamma_i<\beta_{i-1}+\alpha_i.
$$

<figure class="proof-figure" id="fig-angle-bookkeeping"><div class="diagram-scroll"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 760 335" role="img" aria-label="fig-angle-bookkeeping" style="width:100%;height:auto;display:block"><defs><marker id="fig-angle-bookkeeping-arrow" markerWidth="8" markerHeight="8" refX="7" refY="3" orient="auto"><path d="M0 0L7 3L0 6Z" fill="#2b806b"/></marker></defs><text x="190" y="28" font-size="18" fill="#29495d" text-anchor="middle" font-weight="normal">一个侧三角形：θᵢ + αᵢ + βᵢ = π</text><path d="M190 65L65 255H315Z" fill="#edf4f8" stroke="#286786" stroke-width="3" stroke-linejoin="round" stroke-linecap="round"/><text x="192" y="52" font-size="18" fill="#29495d" text-anchor="start" font-weight="normal">O</text><text x="38" y="278" font-size="18" fill="#29495d" text-anchor="start" font-weight="normal">Aᵢ</text><text x="313" y="279" font-size="18" fill="#29495d" text-anchor="start" font-weight="normal">Aᵢ₊₁</text><path d="M175 89Q190 110 205 89" fill="none" stroke="#c48a28" stroke-width="3" stroke-linejoin="round" stroke-linecap="round"/><text x="189" y="131" font-size="18" fill="#c48a28" text-anchor="middle" font-weight="normal">θᵢ</text><path d="M82 228Q105 237 101 255" fill="none" stroke="#2b806b" stroke-width="3" stroke-linejoin="round" stroke-linecap="round"/><text x="118" y="239" font-size="18" fill="#2b806b" text-anchor="start" font-weight="normal">αᵢ</text><path d="M279 255Q278 237 298 228" fill="none" stroke="#ba514f" stroke-width="3" stroke-linejoin="round" stroke-linecap="round"/><text x="239" y="239" font-size="18" fill="#ba514f" text-anchor="start" font-weight="normal">βᵢ</text><text x="570" y="28" font-size="18" fill="#29495d" text-anchor="middle" font-weight="normal">在底面顶点 Aᵢ 比较三个角</text><path d="M475 245L440 100M475 245L680 210M475 245L565 65" fill="none" stroke="#286786" stroke-width="3" stroke-linejoin="round" stroke-linecap="round"/><text x="421" y="91" font-size="18" fill="#29495d" text-anchor="start" font-weight="normal">Aᵢ₋₁</text><text x="682" y="209" font-size="18" fill="#29495d" text-anchor="start" font-weight="normal">Aᵢ₊₁</text><text x="570" y="59" font-size="18" fill="#29495d" text-anchor="start" font-weight="normal">O</text><text x="450" y="272" font-size="18" fill="#29495d" text-anchor="start" font-weight="normal">Aᵢ</text><path d="M462.1 191.5A55 55 0 0 1 529.2 235.7" fill="none" stroke="#c48a28" stroke-width="2" stroke-linejoin="round" stroke-linecap="round"/><text x="482" y="205" font-size="18" fill="#c48a28" text-anchor="start" font-weight="normal">γᵢ</text><text x="570" y="307" font-size="21" fill="#29495d" text-anchor="middle" font-weight="normal">γᵢ &lt; βᵢ₋₁ + αᵢ</text><text x="190" y="322" font-size="16" fill="#29495d" text-anchor="middle" font-weight="normal">把所有侧三角形的内角和相加</text></svg></div><figcaption>图 14｜左图负责角度记账；右图中 O 在截面之外，三条射线不共面，所以底面角 γᵢ 严格小于绕经 O 的两个角之和。空间射线在纸上的夹角仅作标记，不按比例量角。</figcaption></figure>

把所有不等式相加，并用凸 $n$ 边形内角和，得到

$$
(n-2)\pi=\sum_i\gamma_i<\sum_i(\alpha_i+\beta_i).
$$

代回：

$$
\sum_i\theta_i<n\pi-(n-2)\pi=2\pi=360^\circ.
$$

这就证明了第 2 章使用的几何事实。严格号来自非共面性，凸性保证存在正确的截面及其循环次序。

### 10.3 角亏不能被过度解读

定义顶点角亏 $\delta=2\pi-\sum_i\theta_i$。凸多面体的真正顶点必有正角亏。

但仅仅给定角和小于 $2\pi$，不能据此保证一整套多边形能闭合成凸多面体，也不能把正角亏反过来等同于任意嵌入曲面的局部凸性。角亏是内禀量，空间中是否凸还涉及嵌入方式。

角和等于 $2\pi$ 表示内禀平坦，不要求折叠后的面片都在同一个平面；一张纸经折叠就是反例。大于 $2\pi$ 则排除了凸多面体真正顶点，但可出现在非凸的鞍形结构中。

<a id="chapter-11"></a>

## 第 11 章：存在性、唯一性与证明的边界

[返回目录](#reading-toc)

### 11.1 五种立体怎样存在

以下点集的凸包给出具体构造；整体缩放不改变类型。

| 立体 | 顶点坐标或构造 |
| --- | --- |
| 正四面体 | $(1,1,1),(1,-1,-1),(-1,1,-1),(-1,-1,1)$ |
| 立方体 | $(\pm1,\pm1,\pm1)$ 的全部八种组合 |
| 正八面体 | $(\pm1,0,0),(0,\pm1,0),(0,0,\pm1)$ |
| 正二十面体 | $(0,\pm1,\pm\varphi),(\pm1,\pm\varphi,0),(\pm\varphi,0,\pm1)$，每对正负号独立，$\varphi=(1+\sqrt5)/2$ |
| 正十二面体 | 上述正二十面体的极对偶；以其每个三角形面的中心作顶点，取这些点的凸包，所得与极对偶相似 |

前三个例子可直接算距离及支撑平面。二十面体也可用 $\varphi^2=\varphi+1$ 核对：顶点等半径，棱长均为 $2$，有二十个等边三角形支撑面，每顶点相接五面。正十二面体与二十面体互换顶点和面：每个二十面体顶点周围的五个面中心形成一个正五边形。

要说明“正”还需整体对称，而不能只数边。本构造的正二十面体顶点邻点围绕顶点轴呈五重旋转对称，顶点图连通且可用这些对称将邻接顶点互换，结合保持一个顶点的五重旋转和镜面对称，得到旗标传递；极对偶继承对称并将顶点与面对换。附带坐标检查程序保存了各支撑面、棱长、顶点度数与所有旗标对称的数值核对，供复算，数值检查不代替精确的坐标恒等式。

### 11.2 为什么同一参数只有一种：球面旗标三角形

这里给出唯一性的标准几何论证概要，并明确引用一个球面几何结论：角均在 $(0,\pi)$ 的凸球面三角形由三个角唯一确定到球面等距变换。它可由球面余弦定理证明，本文不另行展开球面三角学。

对凸正多面体，把全部顶点的平均值取作原点 $O$。旗标传递意味着顶点传递，所以所有顶点在同一个以 $O$ 为球心的球面上。对一面选其中心 $C$，对一条棱选中点 $M$，对其端点选 $A$；把射线 $OC,OM,OA$ 投到单位球面。

<figure class="proof-figure" id="fig-flag-triangle"><div class="diagram-scroll"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 760 305" role="img" aria-label="fig-flag-triangle" style="width:100%;height:auto;display:block"><defs><marker id="fig-flag-triangle-arrow" markerWidth="8" markerHeight="8" refX="7" refY="3" orient="auto"><path d="M0 0L7 3L0 6Z" fill="#2b806b"/></marker></defs><path d="M185 45L299.127 127.918L255.534 262.082H114.466L70.873 127.918Z" fill="#edf4f8" stroke="#286786" stroke-width="3" stroke-linejoin="round" stroke-linecap="round"/><path d="M185 165L185 45" fill="none" stroke="#6d8391" stroke-width="2" stroke-linejoin="round" stroke-linecap="round"/><path d="M185 165L299.127 127.918" fill="none" stroke="#6d8391" stroke-width="2" stroke-linejoin="round" stroke-linecap="round"/><path d="M185 165L255.534 262.082" fill="none" stroke="#6d8391" stroke-width="2" stroke-linejoin="round" stroke-linecap="round"/><path d="M185 165L114.466 262.082" fill="none" stroke="#6d8391" stroke-width="2" stroke-linejoin="round" stroke-linecap="round"/><path d="M185 165L70.873 127.918" fill="none" stroke="#6d8391" stroke-width="2" stroke-linejoin="round" stroke-linecap="round"/><path d="M185 165L185 45L242.0635 86.459Z" fill="#f9e3b4" stroke="#c48a28" stroke-width="3" stroke-linejoin="round" stroke-linecap="round"/><circle cx="185" cy="165" r="5" fill="#c48a28" stroke="#c48a28" stroke-width="2"/><circle cx="242.0635" cy="86.459" r="5" fill="#c48a28" stroke="#c48a28" stroke-width="2"/><text x="167" y="189" font-size="18" fill="#29495d" text-anchor="start" font-weight="normal">C</text><text x="253" y="85" font-size="18" fill="#29495d" text-anchor="start" font-weight="normal">M</text><text x="176" y="34" font-size="18" fill="#29495d" text-anchor="start" font-weight="normal">A</text><text x="185" y="298" font-size="15" fill="#29495d" text-anchor="middle" font-weight="normal">先在一个面上找：顶点 A、棱中点 M、面中心 C</text><text x="385" y="65" font-size="18" fill="#29495d" text-anchor="start" font-weight="normal">金色小三角形代表一个旗标</text><text x="385" y="99" font-size="18" fill="#29495d" text-anchor="start" font-weight="normal">从多面体中心径向投到球面</text><text x="385" y="133" font-size="18" fill="#29495d" text-anchor="start" font-weight="normal">得到全等的球面旗标三角形</text><text x="385" y="167" font-size="18" fill="#29495d" text-anchor="start" font-weight="normal">三个角为 π/p、π/2、π/q</text><text x="385" y="201" font-size="18" fill="#29495d" text-anchor="start" font-weight="normal">图中只画面内标记，未画球面角</text></svg></div><figcaption>图 15｜唯一性补充中的基本小块。先在面内认清 A、M、C，再把三条中心射线投到球面；球面角不等于左图平面角。</figcaption></figure>

每个面被中心与边中点分成 $2p$ 个旗标三角形。球面上这些三角形全等，三个角分别是

$$
\frac{\pi}{p},\qquad\frac{\pi}{2},\qquad\frac{\pi}{q}.
$$

其中面中心周围有 $2p$ 个全等角，棱中点周围有四个，顶点周围有 $2q$ 个。这些三角形确实构成球面铺分，因为从凸体内部径向投影到球面是一一对应的。

固定一个旗标三角形后，邻接三角形就是它关于公共大圆边的反射：两个全等球面三角形沿相应边接合，另一侧的放置唯一。铺分的邻接关系连通，逐个跨边便强制确定整张铺分。因此同一 $(p,q)$ 的两个凸正多面体，球面旗标铺分在一个等距变换下重合。把外接球半径归一化后，其顶点重合，凸包也重合；原立体因而相似。

这说明参数限制确实限制了类型数，而不仅仅是限制五组计数。结合第 11.1 节的构造，得到恰好五种。若不学习本节球面结论，可以把本节作为分类补充：前九章已经完整给出欧拉公式及五组候选参数的推导。

### 11.3 哪些基础在本文之外

本文的主线没有引用一般若尔当曲线定理；多边形情形用有限窄带和奇偶性作了证明。仍使用实平面的基本连续性、有限紧集的正距离、三角形内角和、内积与余弦公式。

支撑半空间与凸多面体的等价刻画、正多面体坐标构造的完整精确代数展开、球面三角形按角唯一性没有从公理逐行展开。它们的用途分别已标明；不应把这篇笔记描述成从零建立全部欧氏与球面几何。

<a id="chapter-12"></a>

## 第 12 章：问题回查、练习与来源

[返回目录](#reading-toc)

### 12.1 原对话疑问的对应位置

| 疑问或需要修正的说法 | 本文处理 |
| --- | --- |
| 为什么正多面体只有五种？ | [第 2—3 章参数限制](#chapter-2)，[第 11 章存在与唯一](#chapter-11) |
| 凸性的严格定义是什么？ | [第 1 章半空间、线段凸性与真正顶点](#chapter-1) |
| 为什么顶点面角和严格小于 360°？ | [第 10 章截面与角三角不等式](#chapter-10) |
| 空间夹角为什么满足三角不等式？ | [第 10.1 节向量分解及分情况](#chapter-10) |
| 欧拉公式如何整理成参数限制？ | [第 2.2 节逐步除以正数](#chapter-2) |
| 欧拉公式凭什么成立？ | [第 5—9 章投影、树、绕行与增边](#chapter-5) |
| 树的边数为什么是 V−1？ | [第 6 章最长路径、叶子与归纳](#chapter-6) |
| 树没有面是否只是直觉？ | [第 7 章自由端绕行](#chapter-7) |
| 闭回路为什么恰好多一个面？ | [第 8 章分开证明至少与至多](#chapter-8) |
| 是否必须先学完整若尔当定理？ | [第 4 章只用有限线段](#chapter-4) |
| 等于 360° 是否只能铺平？ | [第 10.3 节内禀平坦与折叠的区别](#chapter-10) |
| 几何想象在证明里有什么作用？ | 图像帮助找路线；窄带、正距离、路径替换等步骤负责把路线变为论证 |

### 12.2 三个自检练习

**练习一：** 在两个互不相连的点之间加一条线段，为什么边数增加一而面数不变？

答：增加的是连接两个分量的边，没有旧路径可以与它组成闭回路；加边引理的连通条件不满足。前后分别有 $V=2,E=0,F=1,c=2$ 与 $V=2,E=1,F=1,c=1$，均满足 $V-E+F=1+c$。

**练习二：** 树上添一个新叶子与连通图中加回一条旧边，为什么效果不同？

答：前者的两侧能绕自由端互通；后者两端已由旧路径连接，形成简单多边形，阻止两侧互通。

**练习三：** 若每面是正三角形、每顶点六面相交，哪里被排除？

答：角和恰好 $2\pi$；代数上 $1/3+1/6=1/2$，无法满足有限凸多面体所要求的 $1/2+1/E>1/2$。

### 12.3 来源与阅读边界

主要来源为用户提供的分享对话：解释正多面体只有五种，以及本次关于“采用简单多边形情形”的补充讨论。分享页的主线按父子节点核对，保留了重复的首答片段；旧系统提示及内部非正文内容不作为笔记指令。

进一步阅读可参考 Jeff Erickson 的大学课程讲义 [Simple Polygons](https://jeffe.cs.illinois.edu/teaching/comptop/2023/notes/01-simple-polygons.html)，用于对照多边形版分割定理与一般曲线版的范围区别。本文第 4 章采用窄带与奇偶性组织自己的论证，不是该讲义的翻译。

原始分享页、主线提取、生成脚本及坐标检查记录保存在本版[资料目录](../../../../%E8%B5%84%E6%96%99/%E6%AD%A3%E5%A4%9A%E9%9D%A2%E4%BD%93%E4%B8%8E%E6%AC%A7%E6%8B%89%E5%85%AC%E5%BC%8F%E7%AC%94%E8%AE%B0-v2-2026-10-15)。[全部笔记索引](../../../%E9%98%85%E8%AF%BB%E7%B4%A2%E5%BC%95.html)可用于继续阅读其他主题。

HTML 的正文、图形、公式和公式源码工具均已嵌入，可单文件离线阅读；配套 Markdown、PDF、资料和其他笔记链接需要对应文件。PDF 提供前部目录页码、内部跳转和分层书签，公式源码查看使用 HTML。
