首页 > 试题广场 >

(几何:线段上的点)编程练习题 3.32显示了如何测试一个

[问答题]
 (几何:线段上的点)编程练习题 3.32显示了如何测试一个点是否在一个无限长的直线上。修改 编程练习题 3.32, 测试一个点是否在一个线段上。编写一个程序,提示用户输入三个点 P0、pi1和 p2, 显示 p2 是否在从 p0 到 p1的线段上。这里是一些运行示例:

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        // 数组point 保存坐标
        double[] p = new double[6];
        // 输入点坐标
        System.out.print("Enter three points p0 , p1 and p2:");
        for (int i = 0; i < p.length; i++) {
            p[i] = sc.nextDouble();
        }
        sc.close();
        // p[4],p[5]带入直线两点式是否相等
        if ((p[5] - p[1]) / (p[3] - p[1]) == (p[4] - p[0]) / (p[2] - p[0])) {
            System.out.println("(" + p[4] + "," + p[5] + " is on the line segment from "
                    + "(" + p[0] + "," + p[1] + ")" + "to" + "(" + p[2] + "," + p[3] + ")");
        } else {
            System.out.println("(" + p[4] + "," + p[5] + ")" + " is not on the line segment from "
                    + "(" + p[0] + "," + p[1] + ")" + "to" + "(" + p[2] + "," + p[3] + ")");
        }
    }
发表于 2021-05-04 16:06:02 回复(0)
public static void main(String []args) {
        System.out.println("判断第三点是否在前两点延长线上");
        System.out.println("请分别输入三点的横坐标与纵坐标");
        Scanner scanner=new Scanner(System.in);
        double p1x=scanner.nextDouble();
        double p1y=scanner.nextDouble();
        double p2x=scanner.nextDouble();
        double p2y=scanner.nextDouble();
        double p3x=scanner.nextDouble();
        double p3y=scanner.nextDouble();
        if ((p2y-p1y)/(p2x-p1x)==(p3y-p2y)/(p3x-p2x)) {
            System.out.println("第三点是在前两点延长线上");
        }else {
            System.out.println("第三点不是在前两点延长线上");
        }
发表于 2019-11-01 10:29:51 回复(0)