这篇心得本应该在一个月之前和大家一起分享的,由于本人比较懒,也几乎没有写博客的习惯,所以迟了一些。有一些内容只是一些个人的废话,可看可不看,毕竟在国内的应试教育下,大家基础物理知识都是很扎实的:
(废话)(背景:下面讨论的物体运动默认为宏观角度)一般情况下,物体在三维空间所发生的位移都可以解析为若干连续的在二维空间所发生的位移的和,同理,物体在二维空间所发生的位移也可以解析为若干连续的在一维空间所发生位移的和。基于这个思想(本人的个人体会,对错有待验证),往往一个物体复杂的运动,若将其位移解析为不同一维空间所发生位移的总和,则会让我们能更好地去理解和模拟物体的运动规律。
(废话) 关于自由落体,若在外部环境稳定的情况下,我们可以视其为一个有规律的运动(所谓有规律的运动,运动的方式或过程具有周期性,可重复性),这样我们在写代码的时候,只要抓住其第一个周期的运动规律和初始状态,整个运功过程就可以被复制下来。
(废话) 在中学时期,我们都学过自由落体,老师教我们将它的运动过程解析为水平方向(X轴)和竖直方向(Y轴)的运动轨迹之和,本人能力有限,对物体的运动规律理解不够深刻,所以不能跳出教科书所给定的常规方法,故也采用此法,若不能带给大家更多新的东西,望见谅。
(废话)如何理解位移:简单地说,就是物体在下一时刻所处的位置交上一时刻所处的位置的“差”,为了处理方便,这里的“差”我们理解为两个时刻所处位置的数值上的不同。
(我感觉越说越跑题了,再这样下去就绕不回来了。。下面进入正题,一切理论依据都将参考“大家的物理常识”):()
—————————————————————————————————————————————————————
小球自由落体中,最核心的就是Y轴的运动了,运动过程:
1、从初始位置下落:初始下落速度为0,我们把空气的阻力与地球引力和为在竖直方向上的一个外力,则小球在竖直方向上只受一个外力作用,从而产生竖直方向的速度和加速度,(因为是模仿,所以这个值我们可以自己设定,但必须有),因为自由落体的速度和加速度与物体的质量无关,所以不考虑质量;
2、小球落地与地面碰撞: 碰撞的瞬间,小球发生形变,能量损耗,反弹后的初始速度将小于即将落地时的下落速度,由于JS下无法体现“能量”,则将转化为“速度”进行处理,能量损耗则以速度的不同来体现;
3、小球反弹后上升:上升到最高点,速度为0,准备下落。
(小球的速度不同体现为力作用在小球上的时间差,这个时间差很重要!)
过程1、2、3则为自由落体的一个周期,直到最终小球能够上升的最高点与地面相等,整个自由落体运动结束。
下面将通过代码加注释的方法让大家更为直观地了解其过程:
-------------------------------------------------------------------------------------------------------------------
上面的代码,所有过程都是模拟物体运动规律,涉及到动量、能量的部分都以位移量的方式进行了转化,如果有哪些地方介绍的不清楚或者有不理解的地方可以给我留言。
如果有更好的模拟方法,希望大家能够介绍给我,谢谢!!!!
代码可以直接复制粘贴运行。。。。。。。。。。。