1

重複の可能性:
ある円が別の円の内側にあるかどうかを確認する

円に別の円が完全に含まれているかどうかを確認するにはどうすればよいですか(Javaの場合)

public class Circle {
   //x and y define the top left rectangular region bounding this circle
   private int x, y, radius;
}

public boolean circleContainsCircle(Circle big, Circle small) {

...

}
4

1 に答える 1

1

2つの円を切り取り、それらの表面に接触する最大のセグメントは、それらの中心を通過するセグメントです。ここで、この最長のセグメントの長さが最大の円の直径以下である場合、小さい方の円は明らかに大きい円の中にあると言えます。

public boolean circleContainsCircle(Circle big, Circle small) {

    double segment_length = euler_distance(big.center, small.center) + 
        small.radius + big.radius;
    return (segment_length <= 2 * big.radius);

}
于 2012-12-31T04:34:37.697 に答える