Java黑皮书课后题第3章:**3.28(几何:两个矩形)编写一个程序,提示用户输入两个矩形中心的x坐标和y坐标以及矩形的宽度和高度,然后判断第二个矩形是在第一个矩形内,还是和第一个矩形重叠
**3.28(幾何:兩個矩形)編寫一個程序,提示用戶輸入兩個矩形中心的x坐標和y坐標以及矩形的寬度和高度,然后判斷第二個矩形是在第一個矩形內,還是和第一個矩形重疊
- 題目
- 題目概述
- 運行示例
- 破題
- 代碼
題目
題目概述
**3.28(幾何:兩個矩形)編寫一個程序,提示用戶輸入兩個矩形中心的x坐標和y坐標以及矩形的寬度和高度,然后判斷第二個矩形是在第一個矩形內,還是和第一個矩形重疊
運行示例
Enter r1’s center x-. y- coordinates, width, and height: 2.5 4 2.5 43
Enter r2’s center x-, y- coordinates, width, and height: 1.5 5 0.5 3
r2 is inside r1
Enter r1’s center x-. y- coordinates, width, and height: 1 2 3 5.5
Enter r2’s center x-, y- coordinates, width, and height: 3 4 4.5 5
r2 overlaps r1
Enter r1’s center x-. y- coordinates, width, and height: 1 2 3 3
Enter r2’s center x-, y- coordinates, width, and height: 40 45 3 2
r2 does not overlap r1
破題
三種情況:
代碼
import java.util.Scanner;public class Test3_28 {public static void main(String[] args) {// 從控制臺獲取數據Scanner input = new Scanner(System.in);System.out.println("Enter r1's center x-. y- coordinates, width, and height: ");double x1 = input.nextDouble(), y1 = input.nextDouble();double w1 = input.nextDouble(), h1 = input.nextDouble();System.out.println("Enter r2's center x-, y- coordinates, width, and height: ");double x2 = input.nextDouble(), y2 = input.nextDouble();double w2 = input.nextDouble(), h2 = input.nextDouble();// 計算兩個中心之間距離的分量double x0 = Math.abs(x2 - x1);double y0 = Math.abs(y2 - y1);// 判斷位置if(((x0 + w2 / 2) <= (w1 / 2)) && ((y0 + h2 / 2) <= (h1 / 2))) {System.out.println("r2 is inside r1");}else if(((w1 - w2) / 2) < x0 && x0 < ((w1 + w2) / 2) && ((h1 - h2) / 2) < y0 && y0 < ((h1 + h2) / 2))System.out.println("r2 overlaps r1");elseSystem.out.println("r2 does not overlap r1");} }總結
以上是生活随笔為你收集整理的Java黑皮书课后题第3章:**3.28(几何:两个矩形)编写一个程序,提示用户输入两个矩形中心的x坐标和y坐标以及矩形的宽度和高度,然后判断第二个矩形是在第一个矩形内,还是和第一个矩形重叠的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java黑皮书课后题第3章:**3.27
- 下一篇: Java黑皮书课后题第3章:**3.29