Skip to content

MathCanvas v4.1.0

Choose a tag to compare

@Huo0077 Huo0077 released this 02 Nov 10:55
· 23 commits to main since this release

MathCanvas v4.1.0

发布日期: 2026-11-02 | 类型: 特性版(v4.0.1 → v4.1.0;UI/UX 深度重构、2D/3D 点线面体交互闭环、右侧属性栏人机工程重排、灵动弹簧动效与专属多层几何品牌图标)

这一版改了什么

v4.1.0 是一次聚焦人机交互体验、2D/3D 空间操纵精确度、右侧属性检查器操作逻辑重排、灵动柔和动效与产品视觉辨识度的重大升级。针对长期存在的“按键与功能交互逻辑反人类、立体几何拖点导致整体乱跑或残影错位、右侧属性栏层次混乱、画图手感割裂、阻断操作多”的核心痛点,经过对主流数学工具(GeoGebra、Desmos)与工业级生产力软件(Figma、AutoCAD)的深度对照,全面落地 11 个区块(Block 1–11)的体验重构。

1. 连续作图心流与统一画布落点(Sticky Tools)

  • 连续作图心流(Sticky Continuous Drafting):平面作图工具(点 point、直线 line、线段 segment、射线 ray、圆 circle、圆弧 arc、折线 polyline)在完成一个图元创建后保持激活状态(center: null, sticky: true),工具按钮保持高亮状态,支持一气呵成连续绘制多个几何图元(如连画三条线段构成三角形),彻底消除画完单个图元被迫中断清空工具的阻断体验。
  • 统一空白画布点放置:统一平面画布空白处/曲线上直接点击添加点图元(creationMode === "point"),补齐与线/圆同构的直观落点交互。
  • 轻量退出与解脱机制:在画布任意位置按 Esc 键或点击鼠标右键(contextmenu)直接解脱取消当前工具模式或撤回正在拉拽的橡皮筋第一落点,退回自由选择/平移模式。

2. 智能级联删除与单步事务化(Cascade Delete)

  • 依赖拓扑闭包分析:在 packages/scene-graph/src/deletion.ts 中实现图元依赖图分析工具 primitiveDirectDependencies 与下游递归依赖闭包计算器 cascadeDeletionClosure,遍历 2D 与 3D 拓扑 DAG 依赖关系。
  • 单步批量原子删除与一键撤销:删除父图元(如顶点 A)时自动将所有下游依赖图元(如线段、以点定义的平面等)一并纳入批量单步事务(applyBatch),废除阻断弹窗,且按一次 Ctrl+Z 即可完整无损恢复整族图元。

3. 动点在轨直接绑定与画布直通(Direct Curve Binding)

  • 画布直通在轨动点绑定(Drop-to-Bind):支持将自由点直接拖拽贴合至任意曲线轨(直线、线段、射线、圆、圆弧、抛物线、双曲线、函数图像)自动建立在轨约束,靠近曲线 14px 阈值时触发高亮贴轨光环与 贴轨「<曲线名>」 徽标指示。
  • 属性栏交互滑轨与快捷解绑:为在轨动点提供直观的路径参数滑轨 <input type="range" aria-label="路径滑轨" /> 与「解绑为自由点」快捷按钮。

4. AI Copilot 同屏人机共创抽屉与实时 Ghost 草稿检视(Live-Canvas Co-Creation)

  • AI Copilot 同屏抽屉:在传统工作台引入同屏可折叠的 AI 抽屉组件 CopilotDrawer.tsx,状态栏提供 ✨ AI 助手 停靠按钮,边查看/旋转画布边与智能助手对话,画布绝不卸载。
  • 画布实时 Ghost 幽灵草稿预览与双通道确认:2D 画布与 3D 场景实时以半透明蓝色 #3d5a80 与脉冲虚线呈现待确认草稿图元,画布正上方浮现胶囊确认横幅,支持 Enter 键单步合并入库或 Esc 键静默丢弃。

5. 画布右键上下文菜单与双击内联重命名(Context Menu & Inline Renaming)

  • 画布图元与空白处原生风格上下文菜单:在 2D/3D 图元上右键弹出包含 6 色快捷调色板、重命名、隐藏/显示、锁定/解锁、查看从属依赖拓扑及级联删除的微拟物菜单;在空白处右键提供撤销/重做、快速画点/线/圆及全选。
  • 双击与 F2 原位内联重命名:双击画布图元或按 F2 原位展开内联输入框,支持即时重名冲突校验。

6. 2D/3D 点、线、面、体深度交互逻辑闭环(Block 7 & Block 8)

  • 3D 顶点独立拖拽形变与零残影同步:在 threeDrag.ts 中为 point3 建立原子隔离,拖动立方体等模板实体的单个顶点只移动该点并实时拉伸相连棱面,自动将模板多面体升级为显式面环模式(fromFaces);在 threePrimitives.ts、projectionVisuals.ts 与 intersectionPreviews3d.ts 中过滤 fromFaces.sourceId 原位残影重绘与自交误报;在 threeSceneInteraction.ts 中抬手自动归零 visualApplied 临时矩阵偏移,彻底根除“松手后图形复位而标注点未复位”的错位缺陷。
  • 多面体子元素拾取归属与变形后整体平移/旋转:在 templateTopologyOwners 中补齐 fromPoints(正四面体)与 fromFaces(变形后实体)的面/棱归属,防止拖动表面撕裂单块面;在 apply.ts 中支持变形后实体的整体刚体平移与三色环旋转。
  • 2D 动点圆、锚定切线与旋转跟随曲线实时拖拽预览:在 GraphicsView.tsx 中同步 previewDocument,使动点圆心、切线/法线与旋转跟随曲线在拖拽期间全程实时跟手预览。

7. 灵动柔和的 UI 弹簧动效与专属多层几何品牌图标(Block 9 & Block 10)

  • 物理弹簧缓动与抓取光标感知(保持既有冷色调配色不变):在 tokens.css 与 global.css 中引入现代 CSS linear() 阻尼弹簧缓动曲线 --ease-spring、柔和卡片入场动画 mc-card-soft-enter 及 prefers-reduced-motion 无障碍保护;3D 视口悬停于可拖拽点/手柄时自动切换为 cursor: grab,抓取中锁定为 cursor: grabbing。
  • MathCanvas 专属多层几何品牌图标(BrandMarkIcon & App Icons):设计融合“三维等轴测六面体 + 虚线剖切对角面 + 2D 内接解析圆与倾角椭圆轨道 + 暗环控制顶点与琥珀金动点 #f59e0b + 顶部 AI 智慧四芒星”的专属品牌徽标,全端替换顶栏、模块侧栏、网页 favicon.svg 以及 Windows 桌面应用图标(.ico / .png);在 build.rs 中注册图标资源依赖并在 lib.rs 启动时显式绑定窗口图标(window.set_icon),确保可执行文件 PE 资源、标题栏与任务栏图标 100% 同步生效。

8. 右侧属性检查器(PropertiesBar)人机工程重排与 3D 拓扑卡片补完(Block 11)

  • 三级清晰手风琴折叠架构(几何参数 → 外观样式 → 标注与工程):修复此前 <InspectorAccordion> 自闭合空标签与“外观样式穿插在 3D 与 2D 几何参数之间”的排版错乱,将全部属性卡片真正归入可折叠分组容器。
  • 符合直觉的卡片内部操作流(核心坐标/尺寸 → 约束绑定 → 只读测量指标 → 快捷派生作图 → 精炼底部提示):重排 点坐标、直线性图元、圆/圆弧、圆锥曲线、函数、空间点、空间实体 等全部卡片,将高频修改的坐标与尺寸输入置于顶部,将次级作图按钮与说明沉底,消除重复的图元名称与锁定开关。
  • 3D 坐标三列网格与点线面体全类型属性覆盖:将 3D 向量 (X, Y, Z) 升级为紧凑的 3 列网格(.vector3-grid),并补齐 3D 线段/直线/射线/棱(selectedLinear3 长度、方向向量、关联顶点)、3D 多边形面(face3Metrics 面积、周长、顶点环)与多面体(polyhedron3Metrics 顶/棱/面计数与几何中心)专属属性卡片。

产物

产物 文件名 大小 字节 SHA256
MSI 安装包 MathCanvas_4.1.0_x64_en-US.msi 6.88 MB 7,213,056 5A0C48325D1A77171AEF3075D37C4BEDC3A05D885320D044692324BCB767E525
NSIS 安装包 MathCanvas_4.1.0_x64-setup.exe 5.10 MB 5,348,907 7B114392FF9E4076730A51F2773B592CEDC2A61B763218F971D1D57DAB468082
免安装 exe MathCanvas_4.1.0_x64.exe(上游文件名 mathcanvas-desktop.exe) 16.90 MB 17,717,760 E71DC6A8D4FF84C941AEE90BF06A74911CF9FF5804442F682028FF21A5CE8B21

版本号写入 apps/desktop/src-tauri/tauri.conf.json 与 src-tauri/Cargo.toml(两者本版均为 4.1.0);Cargo.lock 由 cargo 构建时同步。

构建命令:npm --workspace @draw/desktop run bundle(= tauri build,exit 0)——先执行 beforeBuildCommand(vite build → build-check/mathcanvas-current,609 个模块),再 Finished release profile [optimized] target(s) in 1m 42s,WiX 出 MSI、NSIS 出 setup。桌面外壳前端取自 build-check/mathcanvas-current。

验证与质量门禁

  • 单元测试:全库 505 文件 / 5376+ 通过 + 1 todo / 0 失败(vitest run);
  • 全量 e2e 测试:Playwright 79 文件 / 253 项用例通过 / 0 失败(exit 0);
  • 代码规范与类型:npm run typecheck exit 0(0 错误);npm run lint 0 错误 / 15 警告;
  • 文档一致性门禁:npm run test:docs(docs-consistency)8 文件 / 22 项测试全部通过;
  • 离线可靠性与明确实体评测:npm run eval:explicit-solid -- --offline 54/54 通过;npm run eval:reliability -- --offline 29/29 通过、incomplete 0。