Tôi đang cố gắng viết một phương pháp sẽ tính toán nếu hai vòng kết nối chồng lên nhau. Tôi đã đưa ra sau đây và tôi chỉ tò mò muốn biết nếu có anyway nó có thể được tối ưu hóa hơn nữa.Phát hiện va chạm vòng tròn nhanh
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;
}
Tôi không nghĩ bất kỳ giải pháp nào cung cấp kết quả phù hợp, trong đó khoảng cách giữa 2 trung tâm nhỏ hơn một nhưng lớn hơn 0. –