該程序假設採取在(x,y)座標和兩個矩形和顯示用字符串說它們重疊,含有或不重疊兩個矩形的寬度和高度。我有正確的圖形。但我的問題在於要顯示的字符串的邏輯。當未包含或相互重疊的三角形的用戶輸入數據。它說它們重疊。我需要幫助修復代碼的邏輯。兩個矩形邏輯錯誤
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.layout.Pane;
import javafx.scene.paint.Color;
import javafx.scene.shape.Rectangle;
import javafx.scene.text.Text;
import javafx.stage.Stage;
import java.util.ArrayList;
import java.util.Scanner;
public class TwoRectangles extends Application {
public void start(Stage primaryStage) throws Exception {
Pane pane = new Pane();
double width = 400;
double height = 400;
ArrayList<Rectangle> rectangles = new ArrayList<>();
Scanner input = new Scanner(System.in);
for (int i = 1; i <= 2; i++) {
System.out.print("Enter (x, y) of center, width, and height or rec " + i + ": ");
Rectangle temp = new Rectangle(input.nextDouble(), input.nextDouble(), input.nextDouble(),
input.nextDouble());
temp.setFill(Color.TRANSPARENT);
temp.setStroke(Color.BLACK);
rectangles.add(temp);
}
Rectangle rec1 = rectangles.get(0);
Rectangle rec2 = rectangles.get(1);
String s = "";
if (!(rec1.contains(rec2.getWidth(), rec2.getHeight())
|| rec2.contains(rec1.getWidth(), rec1.getHeight()))) {
s = "One rectangle is contained in another.";
} else if (rec1.intersects(rec2.getX(), rec2.getY(), rec2.getWidth(), rec2.getHeight())
|| rec2.intersects(rec1.getX(), rec1.getY(), rec1.getWidth(), rec1.getHeight())) {
s = "One rectangle overlaps another." ;
} else {
s = "The rectangles do not overlap.";
}
Text text = new Text(width * 0.1, height * 0.9, s);
pane.getChildren().add(text);
pane.getChildren().addAll(rectangles);
primaryStage.setTitle("rectangles..");
primaryStage.setScene(new Scene(pane, width, height));
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
之前,你太了不起了。 – CodeNoob