我必须编写一个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");
}
}