cocos creator碰撞水平方向判断_方块碰撞问题中隐藏的圆

21f259fbe06f49c62217c44da0386a66.png

3Blue1Brown频道最近更新了一期视频,其中提到了一个非常有趣的物理问题,简述如下:

两个滑块放置在地面上,左边有一堵墙。左侧滑块和右侧滑块的质量分别为

equation?tex=m
equation?tex=M 。现在给右侧滑块一个向左的初速度,那么整个过程中会发生多次碰撞。假定没有任何形式的能量损失(所有的碰撞都是弹性的,地面无摩擦等),请问最终的碰撞次数是多少?

看上去似乎没什么意思,但是精彩的部分来了,碰撞次数

equation?tex=N 和两个滑块的质量比
equation?tex=M%2Fm 有着微妙的关系:
  • equation?tex=M%2Fm%3D1
    equation?tex=N%3D3
  • equation?tex=M%2Fm%3D100
    equation?tex=N%3D31
  • equation?tex=M%2Fm%3D100%5E2
    equation?tex=N%3D314
  • equation?tex=M%2Fm%3D100%5E3
    equation?tex=N%3D3141
  • equation?tex=M%2Fm%3D100%5E4
    equation?tex=N%3D31415
  • ……

没错,当

equation?tex=M%2Fm
equation?tex=100 的幂时,
equation?tex=N 恰好是圆周率
equation?tex=%5Cpi 的前若干位按序组合成的整数!按照频道主Grant的一贯说法:既然
equation?tex=%5Cpi 已经出现了,那这个问题中隐藏的圆在哪里呢?

这篇文章就来介绍两种巧妙的方法。不过在此之前,我需要先给出后续会使用到的示意图,另外也可以作为一个缓冲:如果你想尝试自己解决这个问题,现在可以暂停下来了。

712026b45c0fae1c5a02bfd13a762595.png
示意图

我在上面的示意图中标出了比较重要的物理量:左侧小滑块的质量、到墙面的距离和速度分别是

equation?tex=m
equation?tex=x
equation?tex=u ,右侧大滑块的质量、到墙面的距离和速度分别是
equation?tex=M
equation?tex=y
equation?tex=v。另外
对于速度来说,我们规定 向左为正方向

一、从速度入手

既然要和圆搭上边,最自然的想法就是去寻找和圆最相似的东西。在这个问题中,能量守恒定律是最好的选择:

equation?tex=%5Cfrac%7B1%7D%7B2%7Dmu%5E2+%2B+%5Cfrac%7B1%7D%7B2%7DMv%5E2+%3D+%5Ctext%7Bconst%7D_1++%5C%5C

其中,等号右边的

equation?tex=%5Ctext%7Bconst%7D_1 是一个我们并不关心的常数。这个形式已经和圆很像了,但它只能算是椭圆,毕竟滑块的质量可以不相同。为了解决这个问题,我们定义两个量:

equation?tex=%5Cbegin%7Bcases%7D+Z+%3D+%5Csqrt%7Bm%7D+u+%5C%5C+W+%3D+%5Csqrt%7BM%7D+v+%5Cend%7Bcases%7D+%5C%5C

把它们带回之前的式子,并且在两边同时乘

equation?tex=2 ,得到:

equation?tex=Z%5E2%2BW%5E2+%3D+%5Ctext%7Bconst%7D_1+%5C%5C

所以在

equation?tex=Z%5Ctext%7B-%7DW
平面内,能量守恒定律相当于一个圆。那两个滑块碰撞满足的动量守恒定律又相当于什么呢?这里同样列出它的形式:

equation?tex=mu%2BMv%3D%5Ctext%7Bconst%7D_2+%5C%5C

把上式中的

equation?tex=u
equation?tex=v 分别用
equation?tex=Z
equation?tex=W 代替,得到:

equation?tex=%5Csqrt%7Bm%7DZ+%2B+%5Csqrt%7BM%7D+W+%3D+%5Ctext%7Bconst%7D_2+%5C%5C

所以在

equation?tex=Z+%5Ctext%7B-%7D+W
平面内,动量守恒定律相当于一条直线。有一点需要注意,刚刚得到的解析式是存在使用条件的——它只适用于滑块之间的碰撞。不过剩下的情况恰巧是最容易处理的: 小滑块与墙面的碰撞的效果是保持
equation?tex=W
不变, 而改变
equation?tex=Z
的符号。

有了这三条结论,我们就能得到

equation?tex=Z
equation?tex=W 演化的过程图:

d4464c02ceeb3687a13b00f13c23b9a6.png
自始至终,Z和W的变化过程

信息量确实很大,一起来按着顺序简单拆解一番:

  1. 图中的蓝色圆代表能量守恒定律,斜向的蓝色虚线代表两个滑块碰撞满足的动量守恒定律,水平的蓝色虚线代表的则是小滑块与墙面碰撞后速度反向。所有斜向的蓝色虚线互相平行,因为它们的斜率都是
    equation?tex=k%3D-%5Csqrt%7Bm%2FM%7D
  2. 图中的每一个点都对应着体系的某种状态。由于体系要满足能量守恒,并且在碰撞时必然会满足动量守恒和小滑块速度反向的其中一个,所以代表体系状态的点只能“按照某些规划好的路线”在圆周上跳跃。
  3. 碰撞发生之前,体系所有的动能集中在大滑块上,所以此时
    equation?tex=Z%3D0
    equation?tex=W 达到正向最大,这对应于红色的
    equation?tex=A 点;
  4. 两个滑块第一次发生碰撞,大滑块的一部分动能转移到小滑块上。由于能量守恒以及动量守恒,体系的状态从
    equation?tex=A 点沿着斜向虚线跳跃到
    equation?tex=B 点。
    这样的斜向跳跃会发生在两个滑块碰撞的时候,例如从
    equation?tex=C
    点到
    equation?tex=D
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值