物理引擎 · REAL-TIME 02

力实验室 FORCE LAB — 你来控制这个世界的力

SIMULATION RUNNING
FORCE LAB · ADVANCED ACADEMY / 06

力学高阶虚拟实验训练系统

这里不再把公式和答案直接摆出来。你需要观察、建模、预测、实验验证,再解释为什么。难度从复杂摩擦、斜面临界,到连接体、滑轮张力、弹簧摩擦反向逐级提升。

L01 复杂摩擦L02 斜面临界L03 连接体L04 滑轮张力L05 弹簧

01 / 复杂摩擦场

摩擦系数随位置变化;静摩擦与滑动摩擦状态自动切换。重点不是“摩擦力=μN”,而是判断它究竟处于什么状态。
预测:箱子进入粗糙区后会发生什么?先点击“预测滑动状态”,再运行。
等待预测

02 / 斜面临界实验

不直接告诉你临界角。缓慢改变角度,观察“静摩擦足够”到“开始滑动”的状态切换。
任务:在不看公式的情况下,把 θ 调到“刚好开始滑动”。记录你的临界角,再用实验结果解释它。
当前:静止

03 / 连接体:整体法还是隔离法?

两个物体接触,只有一个外力。先预测共同加速度,再回答“谁对谁的作用力”。
问题:外力作用在 A 上。B 所受 A 的作用力是多少?不要把“整体加速度”和“接触力”混成一个量。
等待分析

04 / 阿特伍德机:张力与约束

质量不同的两物体由理想绳连接。重点观察:两物体加速度大小相同,但受力并不相同。
预测:较重的一侧向下。改变两边质量,观察加速度与张力如何同时变化。
等待运行

05 / 弹簧 · 摩擦 · 反向运动

左侧是静态场景示意图,交代重物压在弹簧上的结构;右侧用一条动态线条实时映射弹簧形变量的变化——不追求把弹簧本身的真实回弹动画渲染出来,只看"长度怎么变"。
等待释放

推力与摩擦力

拖动推力滑块,箱子立刻响应;把推力拉回 0,剩下的只有摩擦力——箱子会自然减速停下,没有任何路障。轨道按 1:50 压缩显示:画面挪 1 格,箱子实际走了 50 格,这样不管滑多远都能在画面里看完整个减速到停的过程。

推力 F
摩擦力 f
重力 mg
支持力 N
静摩擦力被突破!箱子开始移动
质量 mass20 kg
摩擦系数 μ0.30
推力 F0 N
推力持续时长上限10 s
推力一直非零会持续计时,撑满这个时长后自动把推力归零,逼你看它自然减速——不然就是永动机,没意义。

哪个箱子加速度更大?

相同推力,作用在两个不同质量的箱子上。观察 F=ma:质量越小,加速度越大。同样是 1:50 压缩显示 + 无路障,把推力拉回 0 能看到两箱各自摩擦减速、累计走了多远。

箱子 A · 10 kg
箱子 B · 20 kg
箱子 A 质量10 kg
箱子 B 质量20 kg
共同推力 F80 N
推力持续时长上限10 s

斜面实验

调整角度与摩擦系数。当 mg·sinθ 超过最大静摩擦力,箱子开始下滑。

倾角 θ30°
摩擦系数 μ0.30

精准停靠挑战

设置推力(≤100 N)和施力时长,点击「发射」施力一段时间后自然靠摩擦力减速。让箱子精准停在 🎯 目标区。

完美停靠!
发射推力40 N
施力时长1.0 s

自由沙盒

真正的 2D 物理引擎(Matter.js)。添加物体、用鼠标直接拖拽、看它们碰撞、挂上弹簧——没有预设剧本。

重力强度1.0
全局摩擦 μ0.30
风力 / 推力场0
斜面角度(下次添加)25°
场景中物体数0
💡 直接用鼠标/手指拖动任何物体,松手后它会保留惯性飞出去。斜面和地面不能拖动。滑轮的两个箱子绳长之和守恒(近似刚性绳),重的一边会把轻的一边拉起来。