Repository navigation
MathCanvas v4.0
MathCanvas v4.0
题面读入、解析式构造、空间原子动作、核验判据四条主线一起落地。版本真值由 3.2.0 升到 4.0.0(跨大版本,v3.2.0 之后 566 个提交)。
本版内容(相对 v3.2.0)
1. 题面读入 —— 卷面原话进得来
- LaTeX / OCR 归一:
\triangle、\angle、\frac先归一成语义句;0↔O、全角符号等常见 OCR 误识按限定表纠正,表外不猜。 - 点名一种定义:撇号全部变体(
'/′/’/´)归一到同一字形;ASCII 数字后缀按下标读(A2→A₂、A12→A₁₂);点名放宽到两段后缀 —— 正四棱柱A₂B₂C₂D₂这类题面终于能对上计划里的名字。 - 形状从句:
Rt△ABC/△ABC都认(此前只认"三角形"三个字,于是单字母角∠C=90°无处落);正五、正六边形底面按正多边形代表元支持。 - 条件读取器扩表:定比分点的分数写法
AE=2/5 AD、为表二面角、单字母角按形状环解析、点在圆锥曲线上、弦长、线面角、函数与直线的交点个数、等边长度;数字句拆分与前导条件词剥离,减少"整句落进未解析"。 - 不静默丢条件:读不出的题设进
unverified并给出理由;答案句((2)求…)不再被当成题设。
2. 解析式构造 —— 不靠模型也能把图造出来
新增一批按题面条件直接造坐标的构造器:四面体(六棱长)、长方体(三棱长)、正四棱锥(侧棱 + 底棱)、正三棱锥(棱长)、正三棱柱、梯形棱柱(含基面绕序排序)、直角三角形棱柱、垂直平面的棱锥、两面二面角构型;折图按题面比例合成("将 △AEF 沿 EF 翻折" ⇒ 系统自己补那一笔折);圆台作为参数化动作落地(按既有多边形近似);球作为派生对象跟随宿主实体(外接球 / 内切球按宿主自己的坐标核验,不采信求解器的说法);平面多边形按度量条件构造。
3. 空间原子动作
立体几何此前缺细粒度动作,模型只能拿 create_polyhedron 硬凑。本版补齐:solid.create_segment(只给两个点名,坐标由前面几笔决定,不让模型手写第二份真源)、自由空间点、点投影、点旋转、点平移、对平面反射、线面交点;开放多面体与折角可直接画,不再被"必须闭合"挡住。
4. 核验判据 —— 说得出"哪里不满足"
点在线段上拆成共线 / 落在段内两条判据(该改的东西不同);点在三角形内、锐角 / 直角 / 钝角三角形、锐角不等式、向量点积条件、外心重建、点在圆锥曲线上;线面角真的量、弦长、函数与直线的交点个数、立体隐藏边的虚线证据。渲染证据新增标签碰撞风险与近重合 / 共线点告警 —— "画出来了但看不清 / 不成立"能够显形。
5. 救援与修复 —— 只救不抢
- 见证搜索(按题面条件搜坐标)默认开启:候选已满足题设时一步不动,只有核验没通过才搜,且第二遍必须真的通过才采用。
- 题面说要折、计划里没有折 ⇒ 系统补那一笔(补了什么写进
assumptions)。 - 结构缺陷与折缺陷的合并救援有用例钉住。
- 修复提示按失败签名扩表:点名缺失、动作顺序错、信封被写成 JSON 字符串、
⊥平面的几何含义等。 - 预算:
generation/network由 6 抬到 8(用户 2026-10-15 批准);point3投影求解器加墙钟预算。
6. 形式证明(Lean 4)
后端准入落成十栏审查契约,一个目标类已闭环(真 lake env lean 核验);延迟返回的证明结果在图形已变化时过期;npm run proof:smoke 可单独跑。
7. 评测与基准
付费 exam run 收成一条受门禁的单命令(--exam-run,无授权即拒绝),成本未实测时记 null 而不是 0;样本与阈值在看到任何付费结果之前冻结;报告契约新增 planning 层,"模型反问"有独立状态 clarification;记录 30 题联考试卷作图评测。
8. 课程与题集
2025 课标内容按单元建索引(fail-closed 审计)、跨域数学校验用例集。
产物(Windows x64)
| 产物 | 字节 | SHA-256 |
|---|---|---|
MathCanvas_4.0.0_x64.exe(免安装) |
17,595,392 | 0038F812E076046A34C5EBFE4271EB553B97D5BCE05D89240905E4A3584613BF |
MathCanvas_4.0.0_x64_en-US.msi |
7,102,464 | C6C16F8FD0761C43B6920C6A1A8F4DB566FD948F6C940C5AADC0328A3724BDF2 |
MathCanvas_4.0.0_x64-setup.exe |
5,267,037 | 68D0E28CFE76DA455268396FE49CC525EBE909F126A93C95A988F9FBE47D316F |
构建:npm --workspace @draw/desktop run bundle(= tauri build,exit 0)—— 先跑 beforeBuildCommand(vite build → build-check/mathcanvas-current,591 模块 / 18.62 s),再 Finished release profile [optimized] in 1m 54s,WiX 出 MSI、NSIS 出 setup。
验证
- 单测:全库 457 文件 / 4852 项通过 + 1 todo / 0 失败(174.86 s)。
typecheckexit 0;lintexit 0(0 error / 15 warning);docs-consistency7 条判据 / 18 项通过。- Rust(2026-10-20 补跑):
npm run test:rustexit 0 —— 17 个测试二进制合计 263 通过 / 0 失败 / 4 ignored。 - 免安装 exe 本机启动实测:真窗口句柄
1376356、标题MathCanvas、Responding=True、存活 T+12s。
边界(如实)
- 全量 e2e(2026-10-20 补跑):
npx playwright test --workers=3→ 239 通过 / 0 失败(4.5 min,exit 0)。默认并发下首轮 1 条net::ERR_NO_BUFFER_SPACE(Windows 套接字缓冲耗尽,环境抖动),该条单独复跑通过 —— 不是产品失败。 - MSI 的"装 → 启动 → 卸载"未验:本环境非管理员,MSI 按 Tauri 默认是每机器安装;NSIS(每用户)那一半在 v3.1.0 验收时走完过完整一圈。
- 教师 / 学生走查未做;立体几何的 3D 画面进 HTML、GeoGebra
.ggb、题目截图识图都不在本版。 - 真题四族的真实 provider 质量仍以
docs/current-status.md为准,不由本文件代替。
完整说明见 docs/release/v4.0.md。