判斷兩個圓是否重疊
阿新 • • 發佈:2022-05-17
圓心之間的距離和 |r1-r2|及(r1+r2)之間比較
import java.util.*; import javax.swing.*; class Main { public static void main(String[] args){ Scanner input = new Scanner(System.in); System.out.print("Enter circle1's center x-, y-coordinates, and radius: "); double centerOfCircle1x = input.nextDouble(); double centerOfCircle1y = input.nextDouble(); double radiusOfCircle1 = input.nextDouble(); System.out.print("Enter circle2's center x-, y-coordinates, and radius: "); double centerOfCircle2x = input.nextDouble(); double centerOfCircle2y = input.nextDouble(); double radiusOfCircle2 = input.nextDouble(); double gapOfradius = Math.pow((radiusOfCircle1 - radiusOfCircle2) * (radiusOfCircle1 - radiusOfCircle2), 0.5); double distanceOfTwoCircles = Math.pow((centerOfCircle1x - centerOfCircle2x) * (centerOfCircle1x - centerOfCircle2x) + (centerOfCircle1y - centerOfCircle2y) * (centerOfCircle1y - centerOfCircle2y) , 0.5); if(distanceOfTwoCircles <= gapOfradius && radiusOfCircle2 <= radiusOfCircle1){ System.out.print("circle2 is inside circle1"); }else if(distanceOfTwoCircles <= gapOfradius && radiusOfCircle1 < radiusOfCircle2){ System.out.print("circle1 is inside circle2"); }else if(distanceOfTwoCircles <= (radiusOfCircle1 + radiusOfCircle1)){ System.out.print("circle1 overlaps circle2"); }else{ System.out.print("circle1 dose not overlap circle2"); } } }