首页 > 试题广场 >

(几何:点的位置)给定一个从点 p0(x0,y0)到 p1

[问答题]
 (几何:点的位置)给定一个从点 p0(x0,y0)到 p1(x1, p1)的有向线段,可以使用下面的条件来确 定点 p2(x2, y2)是在线段的左侧 、 右侧,或者在该直线上(见图 3-11 ) :

public static void main(String[] args) {
        Scanner sc =new Scanner(System.in);
        double[] arr = new double[6];
        System.out.print("请输入p0,p1,p2三个点坐标:");
        for(int i=0 ;i<arr.length;i++){
            arr[i] =sc.nextDouble();
        }
        sc.close();
        double isOnTheLine = (arr[2]-arr[0])*(arr[5]-arr[1])
                -(arr[4]-arr[0])*(arr[3]-arr[1]);
        if(isOnTheLine==0){
            System.out.println("在线上");
        }else if (isOnTheLine>0){
            System.out.println("在线左侧");
        }else {
            System.out.println("在线右侧");
        }
    }
发表于 2021-05-04 16:50:13 回复(0)
public static void main(String []args) {
        System.out.println("请分别输入p0、p1、p2的横坐标和纵坐标");
        Scanner scanner=new Scanner(System.in);
        double p0x=scanner.nextDouble();
        double p0y=scanner.nextDouble();
        double p1x=scanner.nextDouble();
        double p1y=scanner.nextDouble();
        double p2x=scanner.nextDouble();
        double p2y=scanner.nextDouble();
        double k0=(p1y-p0y)/(p1x-p0x);
        double k1=(p2y-p1y)/(p2x-p1y);
        if (k0==k1) {
            System.out.println("这三个点在同一直线上");
        }else if (k0>k1) {
            System.out.println("p2在直线右侧");
        }else {
            System.out.println("p2在直线左侧");
        }
    }
发表于 2019-11-01 10:48:06 回复(0)