获取形状交叉点的中心(2D)

时间:2011-01-29 21:14:03

标签: java 2d intersection shape

我正在使用Slick java游戏库,我使用了Shape的Slick实现作为碰撞的命中框,而且工作正常。我使用shape1.intersects(shape2)检查两个形状是否重叠。现在我想要做的是将相交形状的中心点用作生成粒子的地方,显示两个物体之间的碰撞。

我找不到任何计算形状交叉的算法的解释,可能是因为我不知道它是否有特定的名称。

1 个答案:

答案 0 :(得分:1)

查看文档,似乎有两种方法 - unionsubtract - 使用它们可以获得如下交集:

A ∩ B  =  A ∪ B - (A - B) - (B - A)

唯一的问题是这些方法似乎返回一个形状数组而不是一个形状,无论这意味着什么。

当然,实时执行此操作可能会非常昂贵,因此您可以将碰撞点近似设置在两个形状的边界框/圆的中心之间。