如何确保我在java中的矩形是一个有效的矩形

问题描述 投票:1回答:2

这是我目前的程序,它找到一个给定四个点的矩形的周长。我正在为一个学校项目做这件事,并希望确保线条形成一个有效的矩形,但我甚至不知道从哪里开始检查相交线在这里。我该怎么办?

package perimeter;
import java.util.Scanner;
import javafx.geometry.Point2D;

public class Main {

    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);

        System.out.print("Enter point 1's x-, y-coordinates: ");
        double x1 = input.nextDouble();
        double y1 = input.nextDouble();
        System.out.print("Enter point 2's x-, y-coordinates: ");
        double x2 = input.nextDouble();
        double y2 = input.nextDouble(); 
        System.out.print("Enter point 3's x-, y-coordinates: ");
        double x3 = input.nextDouble();
        double y3 = input.nextDouble();
        System.out.print("Enter point 4's x-, y-coordinates: ");
        double x4 = input.nextDouble();
        double y4 = input.nextDouble();
        input.close();

        Point2D p1 = new Point2D(x1, y1); 
        Point2D p2 = new Point2D(x2, y2);       
        Point2D p3 = new Point2D(x3, y3); 
        Point2D p4 = new Point2D(x4, y4);

        double Perimeter = p1.distance(p2) + p2.distance(p3) +
          + p3.distance(p4) + p4.distance(p1);

        System.out.println("The perimeter is " + 
                 Perimeter);
    }
}
java coordinates
2个回答
0
投票

如果你有一个矩形a,b,c,d,检查a和c之间的距离是否等于b和d之间的距离。这将验证形状是否为矩形

double distance = Math.hypot(x1-x2, y1-y2);

阅读文档:https://docs.oracle.com/javase/7/docs/api/java/lang/Math.html#hypot%28double,%20double%29


1
投票

要获得周长,你必须计算矩形周围的总距离,但我认为你的问题是如何检查它是否真的是4个点的矩形。我认为最好的方法是检查3点是否成直角(3点将取决于你的4点的顺序)如果我们看到一些代码可以帮助更多。

© www.soinside.com 2019 - 2024. All rights reserved.