【发布时间】:2010-10-16 09:07:47
【问题描述】:
我正在尝试编写一个方法来计算两个圆是否重叠。我想出了以下内容,我只是想知道是否可以进一步优化它。
private static boolean isCollision(Point2D p1, float r1, Point2D p2, float r2)
{
float a,dx, dy;
a = (r1+r2) * (r1+r2);
dx = (float) (p1.getX() - p2.getX());
dy = (float) (p1.getY() - p2.getY());
if (a > (dx*dx) + (dy*dy))
{
return true;
}
return false;
}
【问题讨论】:
-
我不认为任何解决方案都能提供足够的结果,即 2 个中心之间的距离小于 1 但大于 0。
标签: java optimization collision-detection performance geometry