物理模型创建——帮助学生直观感受物理大题中物体的运动轨迹

【正文】

-–

## 一、自己 / 团队介绍

大家好,我是一名**大三学生**,计算机相关专业在读,一直对教育科技方向有浓厚兴趣,平时喜欢用 Vibe Coding 的方式把脑海里的想法快速变成能跑起来的东西。接触 TRAE 后,我几乎把所有"动手做"的灵感都交给了它——物理解模就是我在 TRAE 的陪伴下,从报名 Demo 一路打磨到复赛完整成品的作品。

我擅长的是把"抽象概念"翻译成"可运行的逻辑":理解物理问题背后的数学模型,再用代码、动画和交互把它们直观呈现出来。比起"看懂答案",我更想让学生"看通过程"。性格标签大概是:**愿意为把一个抽象知识点讲透而反复打磨细节的人**。

-–

## 二、产品简介(复赛版)

### 是什么

**物理解模**是一款基于 Vue 3 + Canvas 2D 的高中物理仿真教学工具(Web 应用 + Electron 桌面版)。它解决的核心问题是:**高中物理大题(尤其是高考真题)中的运动过程、力学分析与电磁场变化,仅靠文字和静态图难以理解,学生经常"看懂答案却想不通过程"。**

### 面向谁

- **核心用户**:高中物理学生(尤其是备考高考的考生)、高中物理教师。

- **典型场景**:做题时想不通某一运动过程 → 输入题干文字或一键加载真题,直观观察完整动态演变;教师备课时用它生成可交互的演示素材,把"静态受力图"变成"动态模拟"。

### 完整功能清单与使用路径

**① 高考真题库(8 道精选真题)**

覆盖力学与电磁学核心题型:2023 浙江螺旋圆轨、2022 全国乙卷跳台滑雪、2021 新高考 I 卷弹性碰撞、2020 全国 I 卷传送带、2022 全国甲卷板块模型、2020 全国 III 卷电场偏转、2021 全国乙卷有界磁场圆周运动等。

- 使用路径:打开右侧题库 → 搜索 / 按难度题型筛选 → 一键加载 → 直接播放完整物理过程。

**② 自定义场景编辑器(8 种工具)**

提供选择 / 小球 / 平台 / 传送带 / 板块 / 圆弧 / 弹簧 / 场区域八种工具,可自由搭建任意物理场景。

- 右键框选批量操作、Shift 键水平垂直锁定、中键平移 + 滚轮缩放(0.3~100x)、撤销 / 重做(50 步历史)、场景导出 / 导入(剪贴板 JSON)、自定义场景本地保存、面板尺寸自由拖拽与折叠。

- 弧线工具支持**约束动力学开关**与**触发器缺口配置**,用于还原"小球穿环"这类复合运动。

**③ AI 题目解析(多服务商接入)**

输入题干文字(如"质量 1kg 的小球以 10m/s 水平抛出"),系统自动识别场景类型(抛体 / 斜面 / 碰撞 / 磁场 / 电场 / 自定义)、提取物体参数并生成可运行的模拟场景。

- 支持 DeepSeek / OpenAI / Claude / Gemini / 自定义模型,兼容 OpenAI Chat 与 Anthropic Messages 两种请求格式;API Key 在界面内配置并以 AES-GCM 加密存储于本地。

- 未配置 Key 时自动回退本地关键词解析,不影响其他功能。

**④ 受力分析与过程回放**

- 实时受力矢量显示:重力 mg、支持力 N、摩擦力 f、电场力 qE、洛伦兹力 qvB、弹簧力 -kx。

- 20 秒(1200 帧)过程回放,支持逐帧拖动;自动识别关键帧(速度变号、碰撞瞬间)。

**⑤ 桌面端打包**

通过 Electron + electron-builder 打包为 Windows 安装包,可离线使用,方便教师课堂演示。

### 相比初赛 Demo 的升级

| 维度 | 初赛 Demo | 复赛成品 |

| ---- | --------- | -------- |

| 物理还原 | 基础引擎 + 预设场景 | 新增**弧线约束动力学 + 触发器缺口机制**,完整还原 2023 浙江螺旋圆轨"小球穿环"复合过程 |

| 题库 | 21 道框架题 | 精简打磨为 **8 道高质量高考真题**,含圆环 / 板块 / 磁场等硬核场景,参数与受力精确 |

| AI 解析 | 仅 DeepSeek | 扩展 **OpenAI / Claude / Gemini / 自定义**多服务商 + Key 加密存储 |

| 工程可信度 | 无自动化测试 | 建立 **unit / integration / regression / contracts 四层测试体系(492 个测试)**,含不可篡改的物理定律契约测试 |

| 部署形态 | 仅网页 | 新增 **Electron 桌面版** + CI/CD 自动部署 |

| 编辑器 | 4 种工具 | 扩展至 **8 种工具**,新增板块 / 传送带 / 场区域等 |

| 代码架构 | 单体大组件 | SRP 拆分 + DIP + 类型化重构,可维护性大幅提升 |

-–

## 三、产品演示视频

8.92 复制打开抖音,看看【游戏调查员——甜菜的作品】Trae ai创作力大赛作品介绍,产品演示视频。 … https://v.douyin.com/R2q1IpG-gkA/ daA:/ g@b.aA :5pm 09/10

视频将展示:真题库加载 → 圆环穿越题完整播放 → AI 题干解析生成场景 → 自定义编辑器搭建 → 受力分析与回放。

-–

## 四、产品创作历程

**灵感来源**:高三备考时我经常"看懂答案但想不通过程"——受力图只能定格某一瞬间,运动轨迹全靠脑补。我一直在想:如果一道高考真题能"动起来",理解会不会简单很多?

**初赛 Demo**:先做出物理引擎核心 + 基础编辑器 + 一批预设场景,验证了"动态可视化"的可行性。

**复赛阶段的几个关键问题与解决思路**:

1. **最难啃的骨头——2023 浙江螺旋圆轨题**。受 2D 拓扑限制,完整螺旋圆轨无法直接还原。我与 TRAE 反复拆解,最终方案是:将螺旋圆轨**简化为单圆弧**,并新增**弧线约束动力学**让小球进环后约束在弧面做无能量损耗的圆周运动;再用**触发器缺口机制**(enterRing / angleCross)控制圆环动态缺口开闭,还原"小球穿环"过程。期间解决了多个难缠 bug,如"球卡环外进不去"“球穿过圆环底部”"完整圆的角度范围误判"等。

2. **物理正确性如何被"证明"**。教育产品最怕"看起来对但实际错"。我在 TRAE 协作中建立了 **unit / integration / regression / contracts 四层测试体系**,其中 `contracts` 层是不可篡改的物理定律契约测试(自由落体、牛顿第一定律、动量守恒、能量守恒),并配置了 pre-commit 钩子与 CI 拦截——**任何通过删改测试来"让构建变绿"的行为都会被拦截**,从工程上保证物理正确性。

3. **AI 解析从"单一服务商"到"通用接入"**。为了让不同用户都能用上自己熟悉的模型,我让 TRAE 实现了兼容 OpenAI Chat 与 Anthropic Messages 两种格式的统一客户端,并支持自定义模型配置。

4. **性能与数值稳定性**。微观粒子参数曾导致子步数爆炸卡顿(1e-27kg + 2e6m/s → 227,000 子步/帧),通过增加子步上限 + 参数宏观等效化解决;摩擦力模型从帧率相关的指数衰减重构为帧率无关的线性减速。

**重要的设计 / 技术决策**:

- 统一单位体系 `PIXELS_PER_METER = 50`(1 米 = 50 像素),重力以像素单位存储(490 px/s²)而向用户以 m/s² 显示,保证所有场景物理量一致。

- 单向数据流架构:composables 管状态(单一事实源),组件 props + emit 通信。

- 力计算采用注册表 + 策略模式(OCP),新增力类型无需改核心逻辑。

- 关键代码按 SRP 拆分、DIP 依赖注入,保证可测试性。

-–

## 五、TRAE 实践过程

整个复赛阶段的需求分析、物理建模、功能开发、缺陷修复与测试体系建设,全部通过 TRAE 的对话式开发完成。以下是关键开发阶段:

#### 阶段一:物理建模范式与真题格式规范

- 与 TRAE 一起把题库的物理建模范式、坐标系统、数值稳定性约束固化为《题目格式规范》,供后续扩展使用。

- 将 2022 跳台滑雪题按物理引擎能力合理拆分为平抛段 / 反弹段两个场景,保证可完整还原。

#### 阶段二:硬核场景还原(弧线约束 + 触发器缺口)

- 用 TRAE 实现弧线约束动力学、入口/出口触发器缺口、触发器颜色可视化,还原 2023 浙江圆环穿越题。

- 逐一定位并修复"球卡环外"“球穿环底”"完整圆角度误判"等连环 bug。

#### 阶段三:AI 解析多服务商接入

- 实现 OpenAI Chat / Anthropic Messages 双格式客户端、自定义模型配置、API Key AES-GCM 加密存储。

- 新增/优化面板自由布局、自定义场景保存、重名校验等功能。

#### 阶段四:四层测试体系与工程化

- 建立 unit / integration / regression / contracts 四层测试,配置 pre-commit 钩子 + CI 拦截测试篡改,覆盖覆盖率回归检查。

- 完成 Electron 桌面打包、CI/CD 自动部署、代码架构(SRP / DIP / 类型化)重构。

#### 阶段五:体验打磨

- 根据实际使用反馈精简冗余交互(如移除与已有入口重复的"保存到题库"按钮),让 AI 解析路径更清晰。

-–

**关键任务对话 Session ID(双击 TRAE 对话即可复制,≥3 个)**:

.4144524824688307:0bbbadece91000b6dac7337072a962e9_6a6ef4ba7f9972afe0c8ac61.6a6ef5717f9972afe0c8ac63.6a6ef57124ae0a303907b456:Trae CN.T(2026/8/2 15:44:49)
.4144524824688307:d296b36a0a38213762f132c0aafb2504_6a732d34d6c3f7cafd6c45f0.6a732d6bd6c3f7cafd6c45f2.6a732d6a8d8247bea41e3c23:Trae CN.T(2026/8/5 20:32:43)
.4144524824688307:3092a99a6575d4da7526b9b195b22189_6a7490a8f42c4154cf821475.6a7490baf42c4154cf821477.6a7490ba2daeb64681de599c:Trae CN.T(2026/8/6 21:48:42)
.4144524824688307:ca2234aeddd42a9dc2bc42da50fd2137_6a74928ff42c4154cf821553.6a7492ddf42c4154cf821555.6a7492dc2daeb64681de599d:Trae CN.T(2026/8/6 21:57:49)
.4144524824688307:eb7cc995672e78c4b0e85b9beacf6e66_6a76a788581d0df0b4c8aa5f.6a76a7c7581d0df0b4c8aa61.6a76a7c6e9acc8e8fbe20efd:Trae CN.T(2026/8/8 11:51:35)
.4144524824688307:28da5f02800fd51fe484cc4f1acd52bf_6a76b87e581d0df0b4c8acb4.6a76b894581d0df0b4c8acb6.6a76b894e9acc8e8fbe20f04:Trae CN.T(2026/8/8 13:03:16)

-–

## 六、技术方案分享(加分项)

| 类别 | 技术 |

| ---- | ---- |

| 框架 | Vue 3.5(Composition API,``)+ Vite 6.3 + TypeScript |

| 渲染 | Canvas 2D + requestAnimationFrame,离屏静态层预渲染优化 |

| 物理引擎 | 自研欧拉积分 + 子步循环防隧穿 + CCD 连续碰撞检测 + 弧线约束动力学 |

| 碰撞 / 力 | 距离阈值碰撞 + 力注册表策略模式(重力 / 支持力 / 摩擦 / 电场 / 洛伦兹 / 弹簧) |

| AI | DeepSeek / OpenAI / Claude / Gemini / 自定义(OpenAI Chat + Anthropic Messages 双格式,Zod 校验) |

| 测试 | Vitest 4(unit / integration / regression / contracts 四层,492 测试)+ husky + CI 完整性拦截 |

| 部署 | GitHub Actions → GitHub Pages / Electron + electron-builder 桌面打包 |

**关键实现思路**:把"物理仿真正确性"当作工程红线——通过不可篡改的物理定律契约测试 + CI 完整性拦截,从流程上杜绝"为了通过测试而篡改物理"的作弊,保证向学生传递的是正确物理直觉。

-–

## 七、商业化 / 社会价值与迭代规划(加分项)

**社会价值**:让优质物理教育资源更普惠。不依赖名师讲解、不需要昂贵实验设备,任何学生都能通过它获得直观的物理过程演示,缩小教育资源差距;同时为一线教师提供免费可交互的备课演示素材。

**商业化方向**:题库付费扩展(校本 / 地区专版真题)、面向学校 / 机构的 SaaS 授权、教师备课素材库会员等。

**迭代规划**:

- 短期:题库规模化扩展、移动端适配。

- 中期:3D 模式(磁场 / 空间运动可视化)、自动生成试题讲解音频。

- 长期:沉淀"物理过程即内容"的标准格式,打造开放的教育仿真内容生态。

-–

*物理解模 · 让每一道物理题都能"动起来"*