矩形物理和碰撞

时间:2010-08-16 14:37:11

标签: language-agnostic

我目前正试图弄清楚如何在我的程序中开发一种方法来处理力并在与墙碰撞后更新矩形的位置。此刻,我只是让它在墙内移动。我知道在加速度方面的运动方程,并理解它们需要集成在RK4方法中,然后可以计算各自的位置x1,y1,theta1和x2,y2,theta2,并更新这些位置....我真正需要知道的是我需要的其他方程式是什么?以及如何将角度位置应用于x,y位置?我不确定惯性/扭矩.....用于绘制矩形im使用(x1,y1)(x2,y2)位置而不是(x,y,w,h)...这里是方程式我知道我需要矩形的(x1,y1)的RK4方法:

vx1'=( - k vx1)/ m

vy1'=( - m g - k vy1)/ m

ω'= - kω/ I

x1'= vx1

y1'= vy1

θ'=ω

k =阻尼常数,I =惯性,ω=角速度

任何帮助都会非常感激,因为这已经困扰了我一段时间....谢谢

1 个答案:

答案 0 :(得分:3)

如果您只想完成工作,请考虑使用现成的和已调试的物理引擎。我强烈推荐FarseerPhysics,这是免费的开源。

如果您对如何计算物理感兴趣,那么http://math.stackexchange.com可能更合适。

如果您对如何实施物理感兴趣,那么您最好的选择是浏览各种教程,因为它是一个相当大而复杂的主题。或者在这里询问,但前提是您有特定的问题。也许GameDev是一个很好的起点。

如果您确实按照自己的方式进行操作,请查看此tutorial on collision detection以了解您自己实现的目标。

顺便说一句,你没有 使用RK4集成商 - 只是RK4在准确性和复杂性之间取得了很好的平衡。简单集成(x += V * dt样式)可以提供足够可接受的结果,并且比RK4少得多。