Files
mcm-26-b/docs/figures/README.md
2026-09-13 18:43:25 +08:00

50 lines
3.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# docs/figures —— 论文插图
本目录的 10 张 PNG 全部进入论文:`docs/paper/main.tex` 用
`\graphicspath{{../figures/}}` 直接引用,论文不重绘、也不手抄图内任何数字。
全部插图由同一脚本生成:
```bash
uv run python scripts/plot_paper_figures.py # 依赖 numpy 与 matplotlib
```
数据来自 `docs/paper/data/` 下的复算结果(`practice-results.json`、
`practice-geometry.json`、正式统计快照)与第四问覆盖计划;
逐图来源见 `manifest.json`。图注为中文,并注明数据取自演练局还是正式测试。
## 约定
- 默认配色与字体沿用 matplotlib 默认样式,不引入自定义调色板;
- 图内不放标题与解释性文字,只保留坐标轴、图例与必要的元素标注,含义由图注承担;
- 图例置于坐标区外,散点与角度标注按位置自动避让,保证互不重叠;
- 输出 PNG(300 dpi、白底)。
## 图清单
| 文件 | 内容 | 数据来源 | 论文位置 |
| --- | --- | --- | --- |
| `framework-decision-loop.png` | 观测—候选集—任务—动作的闭环决策过程 | 论文问题分析的结构 | 图 1 |
| `steps-state-machine.png` | 会话状态机(未进入 / 倒计时 / 接口开放 / 关闭) | `src/mcm26b/protocol/client.py` | 图 2 |
| `timing-attachment-example-105-111-194-199.png` | 附件计时示例:逐动作耗时构成与单步合计 | 题面附件 2 的计时示例 | 图 3 |
| `geo-q1-geometry.png` | 问题一三幅几何:角域交会、定位区域放大(直径圆与最小包围圆)、等边三角形反例 | `practice-geometry.json`(演练局观测复算)、`examples/q1/triangle.json` | 图 4 |
| `geo-q2-guaranteed-reception-disk.png` | 问题二:截断角域外接圆与安全候选盘,右侧为半径分解 | `src/mcm26b/config.py` | 图 5 |
| `geo-q4-minimum-cover-31-points.png` | 问题四:31 点最小命中集分布与定向源读图约定 | `src/mcm26b/guarantee/plans/q4_mincover_v2.json` | 图 6 |
| `selfbuilt-q3-search-clear-path.png` | 问题三演练局:全向源搜索与清除路径(含每次检测的位置、结果与示向度射线) | `referee-data/sessions/<问题三主局>/log.jsonl` | 图 7 |
| `selfbuilt-q4-search-clear-path.png` | 问题四演练局:混合源路径(含定向源朝向、±90° 可见范围与检测点) | `referee-data/sessions/<问题四主局>/log.jsonl` | 图 8 |
| `practice-virtual-time.png` | 44 局演练的总虚拟时间分布与全清局均值 | `practice-results.json` | 图 9 |
| `formal-time-bars.png` | 六次正式测试的累计虚拟耗时分解 | `formal-results.csv` | 图 10 |
论文主局案例编码不写死在脚本里:`plot_paper_figures.py` 读取
`docs/paper/data/practice-macros.tex` 中的 `PractQThreeMainCase` /
`PractQFourMainCase`,与正文口径同源。
## 归档与回放
`examples/replay/` 归档了论文主局的行为日志副本,便于在没有 `referee-data/` 时仍能绘图;
`scripts/archive_replay_logs.py` 用于把新的演练局追加归档:
```bash
uv run python scripts/archive_replay_logs.py --list # 本机有哪些局
uv run python scripts/archive_replay_logs.py <案例编码> # 追加归档
```