【发布时间】:2013-05-08 06:33:44
【问题描述】:
我通过使用the basic equations on wikipedia 碰撞成对的二维凸对象(无旋转)来计算结果。但是,当存在依赖关系时,例如两个对象同时撞击另一个对象:
例如这里,对象 1 和 2 同时击中 3,成对方法失败。根据我计算碰撞的顺序(首先是 1-3 或首先是 2-3),我会得到不同的结果。通过碰撞重复迭代仍然会产生顺序相关的结果。
我已经设置好了,所以我可以弄清楚哪些对象相互接触,所以我的代码会在计算其中一个对象时知道对象 3 正在与另一个对象发生碰撞(所以 1-3碰撞将知道 2-3 碰撞,反之亦然)。我也会知道哪些边/角与什么接触。
任何解决方案都需要稳健...例如,如果设置变得更复杂,如以下 2 个示例:
流程需要能够处理这种情况,甚至更糟。任何可能的同时接触/冲突链。我将拥有描述它们的所有数据,所以我“只”需要知道如何解决这些系统的一般情况。我目前没有对旋转做任何事情,这简化了事情。
它似乎需要将对象组合在一起,但由非正交边(参见最后一个六边形示例)引起的干扰似乎会使该方法失败。
我看到之前有人问过a similar question,但从未检查过给出的答案(死胡同?)。我也不确定冲击传播将如何解决我的第一个示例,因为 C 在第一次碰撞后正在远离……那么传播什么冲击?编辑:好的,我现在看到同时碰撞和冲击传播是两个不同的想法,这就是为什么它看起来没有用。
【问题讨论】:
-
您链接到的问题实际上有一个答案,这可能就是您要寻找的。span>
-
@AlexSzatmary 我不确定这种方法如何适用于我的第一个示例。一旦发生第一次碰撞,C 就会离开……在处理第二次碰撞时不会传播冲击。
标签: algorithm language-agnostic physics game-physics physics-engine