#6256 Score: 0
YY
Participant
1 pt

我输出了一下,mass和gravity大小都是1,好像当成什么都一样。
力的作用是加速度,然后影响速度,最后反应到位移上。所以不论是先算合力,然后算速度位移,还是先分别计算每个分力的速度位移再相加最后都是一样的。
所以可以在TODO dumping中用v*kd计算阻力→加速度→速度增量→速度。因为欧拉法本来就是近似,而且每个步长速度增量很小,所以放在哪里计算都一样;不过在masses中计算更简单,因为阻力实际是作用在质点上的,如果放在springs中一个弹簧两个质点,相邻弹簧由公共质点,可能计算重复。
如果按照老师讲的阻尼取决于相对速度的话,在springs中计算更方便,但是我认为这个地方取绝对速度也可以,我以前上结构动力学的时候,粘滞阻尼是与运动方向相反,这里的运动方向都是基于地面(地球),而不是质点相对速度;因为阻尼最终导致运动停止,基于绝对速度可以达到这个效果(我记得阻尼系数是根据实验得来的,这里的实验应该是绝对速度,实验应该不会还分出各个质点求相对速度)。基于相对速度,各部分相对静止,最后也是基于地面静止,效果相同。我的理解是基于绝对速度,阻尼可以当作空气阻力,基于相对速度可以看出能量以热量耗散来损失。
还有那个显示欧拉,我把Application::render() 里调用simulateEuler循环改成了i<1,速度放慢了,看见不是直接发散,而是正常运动了一会发散了,应该是老师讲的稳定性问题。