交互式物理教学画板
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_8bb4b4f5/edu-physics。
技能介绍
要解决的问题
写物理课件的人常遇到一个尴尬:讲稿里是 y = v₀t - ½gt²,学生脑子里却是一堆静止的数字。题目一旦要「拖动滑块看轨迹怎么变」,就得自己搭前端、写渲染、对齐公式和画板,成本远超备课本身。edu-physics 要做的是把题目规约(场景、可变参数、物理规律)直接变成一个能在浏览器里跑起来的交互页面,而且只产出一个自包含的 HTML。
核心能力与工作流程
输出是三栏单页:左栏是题面加动态控制台,一个滑块(t、θ、v、T 等)驱动所有物理量实时重算,并给出守恒指示或状态判定;中栏是分步解析,公式用 KaTeX 渲染,可一键收起;右栏是 2D Canvas 画板,支持轨迹、质点、矢量箭头、波形、光线、电场线与网格坐标轴,还叠加画笔工具栏。
生成流程分四步:
- 确定题目规约:场景、参数范围与步长、物理规律、交互范式,输出语言跟随提示词。
- 设计物理系统:最关键的一步。选好坐标原点(抛体取抛出点、简谐振动取平衡位置、折射把界面放在 x 轴),写出参数化表达式,再用初始条件、守恒量、边界条件做心算自检,视窗留 10–15% 边距。
- 组装数据并注入模板:三段式 JSON 写入
template/board.html的数据岛__LESSON_DATA__,用 Python 标准库做字符串替换,或直接注入 JSON。 - 自检与交付:验证初始条件、守恒量恒定、轨迹形状正确,起本地静态服务在浏览器里检查,随后关掉端口、清理临时文件。
模板无外部依赖,不需要物理引擎或 sympy。表达式引擎支持常见算术、三角函数(弧度制,参数名须是合法 JS 标识符)、sqrt、atan2 等;trace 在参数区间均匀采样 160 步画轨迹;constant 字段用来做「机械能守恒 / 动量守恒」这类恒等式指示器。
适用边界与注意点
本技能只覆盖二维平面即够的场景:抛体、简谐振动、波动、斜面滑块、碰撞、圆周运动、平面场分布、PV 图。涉及三维的(洛伦兹力的叉积方向、右手定则、原子轨道、晶体结构、刚体旋转、电磁波 E/B 正交、螺线管磁场)应改用 edu-physics-3d,两者数据岛格式不同。
几个容易踩的坑:derived 里的 point 类型并未实现,质点要在 points 中用 {xy, color, label} 声明;矢量随质点变化时,通常做法是额外定义箭头末端点,再用 vector 指向它。KaTeX 不支持 \prescript,写核素符号要改用 {}^{}_{}\text{}。交付目录里只能有一个 .html,构建脚本和缓存一律放 /tmp。
使用场景
- 物理老师备课抛体运动,需要拖动时间滑块实时显示质点沿抛物线运动并更新速度与加速度矢量。
- 高中老师制作恒力做功课件,要在画板上叠加功的面积条形图,并让机械能守恒的指示器始终亮着。
- 教研员准备气体状态变化复习课,需要一页可交互的 PV 图让学生拖动参数观察等温与绝热过程。
- 竞赛教练讲一动一静碰撞模型,要在单页中并排展示碰前碰后速度,并用恒等式横幅验证总动量不变。
适合人员
- 中学物理与竞赛教练:想把运动方程、矢量和守恒量在同一页面上联动展示,让学生直接拖动参数。
- 教育技术工程师:需要一套无前端依赖的 Canvas 模板,把题目规约渲染成三栏交互页交付。
- 高中物理学生:正在准备竞赛,希望输入自己的初速度和角度就看到轨迹与能量数值是否守恒。