与矩形相撞的绳索

我有我的绳子,我有我的长方形。

绳索类似于这里find的实现: http : //nehe.gamedev.net/tutorial/rope_physics/17006/

现在,我想要使绳子与矩形正确碰撞,使绳子不会穿过矩形,并围绕矩形和所有好东西。

目前,我已经设置好了,没有绳索节点可以通过一个矩形(成功),但是,这意味着一个绳索仍然可以通过一个块。 例如:

在这里输入图像说明

所以问题是,我能做些什么来解决这个问题?

我曾经尝试过:

我在绳索的两个节点之间创建一个矩形,计算节点之间的旋转,并得到一个变换矩形。

我可以成功检测到绳索段与(未转换的)矩形之间的碰撞。

在块的角落附近创建一个新节点或支点,并重新排列节点以指向角点节点。 麻烦在于确定绳索段经过的角落。 然后,目前的绳索设置变得不可靠(基于三角形的整合,所以在8级地震期间,突然的位置变化导致绳索像地震仪一样摆动)。在可以解决的其他问题中,但是它变成了一个案例通过案件的事情,这似乎并不正确。

我认为这里最好的答案只是一个教程的链接(我根本找不到任何东西,大部分是导致box2D或farseer,但我想至less学习它如何工作,然后我隐藏在引擎之后)。

您应该使用碰撞响应的方法来确保您的绳索段总是不与您的块重叠。 本教程是一个很好的起点: http : //www.metanetsoftware.com/technique/tutorialA.html 。

它提到了三种types的碰撞响应技术:投影,惩罚力和冲动力。 投影比较简单,但没有考虑到重要的物理信息(如速度和加速度),这可能会使绳子不真实。

罚款是简单和准确的中途。 这些方法试图通过产生恢复力来避免渗透。 本教程中有一个很好的参考资料,在Hitman上使用:在六自由度刚体物理模拟中使用Verlet积分和约束(不幸的是我无法在网上find文档…)。 如果你想这样做(所以你不能错过碰撞),请检查: http : //gamma.cs.unc.edu/CPF/paper.pdf 。

最后,正如本教程所示,您可以阅读http://graphics.stanford.edu/courses/cs468-03-winter/Papers/ibsrb.pdf ,了解更精确的基于脉冲的方法。

在你的情况下,我会尝试以惩罚为基础或以冲动为基础的方法,因为你已经在你的弹簧系统中有力量,也可以考虑到它们。