虽然位置也很重要,但强调找到时间(交叉点开始的时间)。边界框(非轴对齐)具有位置、旋转、速度和角速度(旋转速率)。没有加速度,这应该真正简化事情......如果需要,我可能也可以删除角速度分量。连续或迭代函数都可以工作,但除非迭代函数主动收敛到解决方案(或缺乏解决方案),否则它可能会太慢。
我查看了 SAT,但它似乎不是为了找到移动物体的实际碰撞时间而构建的。它似乎只适用于非移动快照,并且设计用于处理比矩形更复杂的对象,因此它实际上似乎不适合这个问题。
我已经考虑过可能从 8 个点中的每一个中绘制出轨迹,然后以某种方式具有一个函数来判断一个点是否处于另一个形状中并获得发生的时间范围,但我对如何去吧。一个不错的功能是它完全随时间运行并且忽略了离散“步骤”的想法,但它也让我觉得这是一种低效的方法。
不用担心广泛的阶段(确定是否值得看看这两个边界框是否可能重叠),我已经解决了这个问题。