我需要检查区域a
与区域b
之间的碰撞:
Area a = new Area(new Ellipse2D.Float(100, 100, 70, 70));
Area b = new Area(new Polygon(x,y,n));
x
和y
是存储多边形坐标的数组。我试过了:
boolean checkCollision()
{
a.intersect(b);
return !a.isEmpty();
}
最后我写了这个方法,看它是否有效:
public String toString()
{
if(checkCollision())
return "TOUCH";
else
return "NO TOUCH";
}
此方法似乎不起作用:当我触摸多边形的顶点时,它不会检测到碰撞。
在第3张图片中,您可以看到,只有当我与他们没有碰撞的区域“足够远”时(这些图片中的多边形为白色)。如果他们靠近,相反,碰撞不是很准确,似乎没有工作。
这种方法是正确的方法吗?有什么建议?替代?