首页 > 解决方案 > 两个快速移动的圆圈之间的碰撞解决方案。一种对碰撞没有反应的

问题描述

好的,所以我已经深入了解并了解如何在快速移动的圆圈和基于基本曲线/线条的形状之间进行碰撞。我还没有完全集中精力检测两个移动圆圈之间的碰撞。我一直将它们建模为胶囊,因此虽然我可以轻松找到它们的交点,但我不确定如何解决一个停止和另一个开始的位置。

此外,一旦我知道这些信息,我真的不知道如何解决他们的速度和位置。

情况是有几百个小圆圈,按照物理定律快速移动。当鼠标/手指/触摸移动并继承手指速度等时,还有更大的圆圈跟随鼠标/手指/触摸的位置。目标是小圆圈与较大的圆圈相撞。这很棘手,因为大圆圈根本不会对碰撞做出反应,而且我能找到的大多数算法都需要这样做。

我什至如何开始思考和解决这种类型的碰撞场景?我不仅无法弄清楚快速移动的小圆圈与快速移动的大圆圈在哪里碰撞,我不知道如何考虑手指速度以正确碰撞小圆圈。

有什么好主意吗?

标签: mathphysicscollision

解决方案


x1, y1, vx1,vy1为 的 x 位置、y 位置、x 速度和 y 速度circle1。同样,我们有x2, y2, vx2,vy2对于circle2

由于其中一个圆,比如说circle1,对碰撞没有反应,所以从这个大家伙的角度(也称为参考系)来看碰撞是很有用的。在这个参考系中,circle2x 速度为vx2 - vx1,y 速度为vy2 - vy1。的 x 和 y 位置circle2同样是x2 - x1y2 - y1

在这个参考系中,circle1也没有移动,可以被视为静态墙。

然后,您可以将此问题视为类似于以的法向量和 的速度与circle2墙壁碰撞的移动问题。(x2-x1 , y2-y1)(vx2-vx1 , vy2-vy1)

我假设您知道如何解决这个问题,因为您说您了解圆形和形状之间的碰撞。

一旦你得到 的最终速度,只需记住通过添加x 速度和y 速度circle2返回到原始视角。vx1vy1


推荐阅读