1. 內部
2. 重疊
3. 無相交
- import java.util.Scanner;
- public class C1
- {
- public static void main(String[] args)
- {
- Scanner input = new Scanner(System.in);
- //輸入矩形的中心點,長,寬
- System.out.println("請輸入第一個矩形的中心點x座標");
- double x1 = input.nextDouble();
- System.out.println("請輸入第一個矩形的中心點y座標");
- double y1 = input.nextDouble();
- System.out.println("請輸入第一個矩形的長");
- double h1 = input.nextDouble();
- System.out.println("請輸入第一個矩形的寬");
- double w1 = input.nextDouble();
- System.out.println("請輸入第二個矩形的中心點x座標");
- double x2 = input.nextDouble();
- System.out.println("請輸入第二個矩形的中心點y座標");
- double y2 = input.nextDouble();
- System.out.println("請輸入第二個矩形的長");
- double h2 = input.nextDouble();
- System.out.println("請輸入第二個矩形的寬");
- double w2 = input.nextDouble();
- //計算兩矩形中心點座標x軸距離差與y軸距離差
- double differX =Math.pow(( x1 - x2 ) * ( x1 - x2 ), 0.5);
- //平方後再開更號是要確定此值為正數
- double differY =Math.pow(( y1 - y2 ) * ( y1 - y2 ), 0.5);
- //平方後再開更號是要確定此值為正數
- //計算兩矩形半長的差值和半寬的差值
- double differH =Math.pow(( h1 - h2 ) * ( h1 - h2 ), 0.5) / 2;
- //平方後再開更號是要確定此值為正數
- double differW =Math.pow(( w1 - w2 ) * ( w1 - w2 ), 0.5) / 2;
- //平方後再開更號是要確定此值為正數
- //第一個矩形比第二個矩形還要大
- if(differY > differH && differX > differW && h1 > h2 && w1 > w2)
- {
- System.out.println("兩矩形相離");
- }
- else if(differY > differH || differX > differW && h1 > h2 && w1 > w2)
- {
- System.out.println("兩矩形相交");
- }
- else if(differY < differH && differX < differW && h1 > h2 && w1 > w2)
- {
- System.out.println("兩矩形相疊");
- }
- //第二個矩形比第一個矩形還要大
- else if(differY > differH || differX > differW && h1 < h2 && w1 < w2)
- {
- System.out.println("第二個矩形包含第一個矩形");
- }
- }
- }
沒有留言:
張貼留言