# 几何计算示意图册 > 本册逐图给出坐标口径、关键量与图中各元素的含义。插图位于 [`figures/`](figures/),复现命令: > > ```bash > uv run python scripts/build_figure_data.py --only geo-q1-convex-intersection-zoom,\ > geo-q1-diameter-circle-counterexample,geo-q2-guaranteed-reception-disk,\ > geo-q3-seven-point-coverage,geo-q4-minimum-cover-31-points > ``` > > 图中的数字由脚本现算:问题一调用生产求解器,问题三、四直接读覆盖计划与证书; > 来源与 sha256 记在 [`figures/manifest.json`](figures/manifest.json)。 统一的坐标与符号约定: - 世界坐标以 Ω 圆心为原点,$x$ 轴向右、$y$ 轴向上,单位**米**; - Ω 是半径 $R=1800$ m 的圆盘;源的有效接收半径 $r_{\rm eff}\in[1000,1500]$ m; - 示向度 $\theta$ 以 $+x$ 轴为 $0°$ 逆时针为正,误差半角 $\delta=1°$; - 清除半径 $r_{\rm clear}=20$ m; - "可保证清除" ⟺ 存在一点使整个候选区域落在该点 20 m 内 ⟺ $\rho\le 20$ m(充分)。 --- ## 图 1 问题一:角域交会与定位区域 ![问题一角域交会](figures/geo-q1-convex-intersection-zoom.png) **左(总览)**:三个检测点(官方演练案例 `U5ZW-P9KN-TCAG-R7ST`,频道 9) 各自的**前向角域** $W_i=\{p:\angle(p-s_i)-\theta_i\in[-1°,+1°]\}$ 画成窄扇形 (2° 宽,图中放大成可见宽度);三者交集就是定位区域 $P$。检测点相距 600~900 m, 而 $P$ 的直径只有 24 m,所以左图里 $P$ 缩成一个点——这是**必须做局部放大**的原因。 **右(放大,视野 ±20.6 m)**:以定位区域为中心: - 浅蓝扇形 = 三个角域在放大框内的可见部分;**橙色多边形** = 三者交集,即定位区域 $P$; - 左图里 $P$ 的直径只有 24 m,缩成一个红色方块,放大后才看得到形状; - 蓝色虚线圆 = **直径圆**,半径 $D/2=11.9984$ m,圆心是中点 $(-450.634,\ 508.944)$; - 绿色实线圆 = **最小包围圆(MEC)**,$\rho=12.0686$ m,圆心 $(-449.977,\ 507.953)$。 **关键量** | 量 | 值 | 判定 | | --- | ---: | --- | | 直径 $D(P)$ | 23.9967 m | 顶点对枚举(凸集上最远点必为顶点) | | MEC 半径 $\rho$ | 12.0686 m | Welzl 算法 + 支撑点枚举对照 | | 直径圆最大超出 $E$ | +0.6040 m | $E>0$ ⇒ **直径圆不覆盖** $P$ | | $\rho\le20$ m | 成立 | ⇒ **存在可保证清除的点**(取 MEC 圆心) | > 这两个结论不矛盾:题目问"直径圆能否覆盖"(答案:不能,$E>0$) > 与"能否保证清除"(答案:能,$\rho\le20$ m)是**两个不同的问题**。 > $E$ 的定义:$E=\max_i\lVert v_i-o\rVert-D/2$,$o$ 为直径中点; > 精确算术下最远顶点对就在圆周上,故 $E\ge0$,$E>0$ 即覆盖失败, > 达到最大值的顶点就是可独立复核的失败证据。 --- ## 图 2 问题一:直径圆不覆盖的反例 ![直径圆反例](figures/geo-q1-diameter-circle-counterexample.png) 等边三角形布站($S_1(-1000,0)$、$S_2(540,-866)$、$S_3(520,901)$,示向度 $1°,121°,241°$,误差半角 $1°$)。三条 2° 宽的角域交出一个**等边三角形** $P$:顶点 $(0,0)$、$(40,0)$、$(20,34.641)$。 - 直径 $D=40.0000$ m,最远点对是底边两端 ⇒ 直径圆圆心 $(20,0)$、半径 20 m; - 到第三个顶点 $(20,34.641)$ 的距离是 $20\sqrt3\approx34.6410$ m > 20 m, 故**直径圆不覆盖**:$E=+14.6410$ m; - 该反例的最小包围圆半径 $\rho=40/\sqrt3\approx23.0940$ m **> 20 m**, 属于"覆盖失败且无法保证清除"的更坏情形。 > 反例是**符合题设测向条件**的:把真实源放在三角形中心 $(20,20\sqrt3/3)$, > 三个检测点的真实方位与读数偏差均小于 $1°$,且三个检测距离都小于 1500 m, > 所以它不是"脱离测向模型的任意图形"。构造与证明见 > [`问题一解答.md`](问题一解答.md) 第六节。 --- ## 图 3 问题二:保证接收的候选盘与安全盘 ![问题二保证接收盘](figures/geo-q2-guaranteed-reception-disk.png) **候选集**(首次观测之后可能的位置集合): $$ K_1=\Omega\ \cap\ W(s_1,\theta_1\pm\delta)\ \cap\ B(s_1,\ 1500), $$ 即"Omega 内、首次角域内、且距离不超过最大接收半径"的三者之交。 **解析安全盘**:截断角域(扇形,半径 $R_{\max}=1500$ m、半角 $\delta=1°$) 的最小包围圆恰为 $B(c,a)$,其中 $c=s_1+a\boldsymbol u$($\boldsymbol u$ 为示向度单位向量), $$ a=\frac{R_{\max}}{2\cos\delta}=\frac{1500}{2\cos1°}=750.1142\ \text{m}. $$ 于是对安全盘内任一点 $q$、扇形内任一点 $p$: $$ \lVert q-p\rVert\le a+(1000-a)=1000\ \text{m} \ \Longrightarrow\ q\ \text{必然收到源的信号}, $$ $$ \boxed{\ \text{安全盘半径}=1000-a=249.8858\ \text{m}\ } $$ (严格非空;图中绿色实心圆,圆心 $c=(649.62,\ 375.06)$)。 第二检测点就在该盘内选,目标是**最小化最坏保守后验包围半径**, 移动与检测成本作次目标;交会角只用于同分筛选与可解释性说明。 > 图中 $a$ 与 1000 m 两个圆几乎重合是可预期的:$\delta$ 只有 $1°$, > $a=R_{\max}/(2\cos\delta)$ 与 $R_{\max}/2$ 相差 0.0114%, > 因此**安全盘的"安全"主要来自角域约束,而不是圆心位置**。 --- ## 图 4 问题三:七点解析覆盖 ![问题三七点覆盖](figures/geo-q3-seven-point-coverage.png) **站点集**:原点 + 半径 $a$ 的六等分环, $S(a)=\{(0,0)\}\cup\{a(\cos k\pi/3,\ \sin k\pi/3):k=0,\dots,5\}$。 **定理(`algo-3.md` §4.2)** 当 $0 **本轮修复的正确性缺陷**:旧版 `no_signal` 的朝向裁剪规则反向、且漏计格内角裕量, > 会删掉真源所在的朝向档。已修复,并由 > `tests/test_joint_belief.py` 的随机观测序列保留性测试固化。 --- ## 附:把图接进论文 `docs/paper/main.tex` 目前用表格承载结论,插图按下例插入即可: ```latex \begin{figure}[htbp] \centering \includegraphics[width=0.95\textwidth]{figures/geo-q1-convex-intersection-zoom.png} \caption{问题一:角域交会得到的定位区域,以及直径圆与最小包围圆的关系。} \label{fig:geo-q1} \end{figure} ``` 图片按 160 mm 宽排版。图内不含标题与图注,说明写在 `\caption` 与正文。