2つの円が重なっているかどうかを計算するメソッドを作成しようとしています。私は次のことを思いついたし、とにかくそれがさらに最適化できるかどうかを知りたいだけなのです。高速サークルコリジョン検出
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より大きい場合、解決策のいずれも適切な結果をもたらすとは思わない。 –