如何查看两个多边形是否重叠?

时间:2015-05-15 18:14:09

标签: java overlap polygons

我需要检查两个java.awt.Polygon是否重叠,但我不知道如何。

2 个答案:

答案 0 :(得分:6)

[{id":"109","compid":"161","quest_type":"Jalgpall","ans_type":"ansText","cor_ans":"","team1":"","team2":"","textq":"fwefwf"}]

答案 1 :(得分:2)

从几何角度来看,有些条件可以通过重叠多边形来实现。

1)如果A中的一个段与B中的一个段相交,则多边形会重叠。

2)如果B中的所有顶点都在A内,反之亦然,则多边形重叠。

3)如果A中的所有顶点也是B的顶点,则多边形重叠。

对(1)的测试相当简单。你只需做一点代数和蛮力。如果线条平行,它们就不会交叉。如果线是不平行的,则它们相交。如果交点位于任一段内,则它们交叉。最大迭代次数是A *长度B的长度。

对(2)的测试稍微复杂一点。判断点是否在多边形内的一种方法是:选择一个你知道在多边形之外的点,通常是x的负值,y适用于此。然后,从参考点到测试点绘制一条线。如果它穿过奇数个段,它就在里面。如果它穿过偶数或零段,则它在外面。

相关问题