如何使用线中的两个点和线段的两个端点来检测线和线段是否相交

时间:2020-02-21 03:37:52

标签: java

我必须编写一个Java程序,该程序读取一条线和一条线段,然后确定它们是否相交。当它们完全重叠时,将其视为相交。使用变量((lp1x,lp1y),(lp2x,lp2y))代表一条线,并使用((sp1x,sp1y),(sp2x,sp2y))代表线段。我定义了四种情况(两条线都是垂直的,两条线是垂直的,线段不是,反之亦然,两条线都不是垂直的)。我只需要知道如何检测线条是否相交即可。编码语言是NetBeansIDE上的Java。预先谢谢你!

到目前为止,我有这个:

    if(lp1x == lp2x){
        //line is vertical
        if(sp1x == sp2x){
            //line segment is vertical (case 1)
            System.out.println("case 1");
        }
        else{
            //case 2
            System.out.println("case 2");
        }
    }
    else{
        //line is not vertical
        if(sp1x == sp2x){
            //line segment is vertical (case 3)
            System.out.println("case 3");
        }
        else{
            //case 4, neither are vertical
            System.out.println("case 4");

        }
    }

0 个答案:

没有答案
相关问题