我需要检查两个java.awt.Polygon
是否重叠,但我不知道如何。
答案 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适用于此。然后,从参考点到测试点绘制一条线。如果它穿过奇数个段,它就在里面。如果它穿过偶数或零段,则它在外面。