计算机几何:矩形碰撞问题

在一个平面上已知所有矩形的位置和大小,他们的边都是和轴平行的。若矩形从A运动到B,如何求出在运动过程中,第一次和其它矩形发生碰撞的矩形以及碰撞的位置?

这几天在写一个小游戏给自己无聊的时候玩一下,昨天被这个问题困扰大半天,到最终还是没有想到完美的解决方案。

暂时记下来,以后有时间继续思考。

恳求大牛指点迷津!

计算机几何:矩形碰撞问题》有9个想法

  1. Xiaoxia

    嗯,是这样定义的。
    如果这是数学问题,显然很容易解决。但是换到计算机代码上,就不那么容易实现了。
    我想了大半天,能把发生碰撞的矩形都找出来,但是如何找出第一次碰撞的那个?

    回复
  2. to_be

    当运动的运动方程给定,其他的矩形的位置、形状给定时。
    运动与其他的矩形之间的aling(X,Y两个方向上)时刻与位置是可以求出来的。
    接着判断align时是否接触。

    回复
  3. Xiaoxia

    因为给出的图的轨迹是斜向右下的,所以碰撞的面肯定是右边的或者下边的。
    不知道有没有一个统一的判断公式来确定最先碰撞的究竟是哪一个。

    回复
  4. haitun

    我的想法和4楼类似,分解成水平方向和竖直2个方向,吧矩形分解成线段的单方向的碰撞问题,然后比较水平方向和竖直方向的哪个先撞上就行了

    回复

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据