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");
}
}
解决方案
推荐阅读
- node.js - 将点几何添加到 Postgresql
- windows - 需要使用powershell以相同的本地用户/密码登录多个IP无提示
- web-scraping - 用于计算股票新闻的网络抓取
- c - 合并排序链表给出分段错误
- reactjs - 在 JSX/React 中读取连接标识符或路径的值?
- c++ - 如何使用基于范围的循环将向量的元素打印为有序列表
- c# - 如何防止 UI 按钮在每次点击时重置为启动条件?Unity3D
- sql-server-2012 - 如何使用 Entity Framework Core 删除没有外键的相关数据
- google-cloud-platform - Dialogflow CX 版本:恢复 BLOB 文件代理错误
- r - 如何计算元素在时间步 t 的出现总数?