首先推荐java的Line2D类自带方法linesIntersect

java.awt.geom.Line2D.linesIntersect(x1, y1, x2, y2, x3, y3, x4, y4);

然后从网上找到一种比较好理解的方法

    /**两【线段】是否相交* @param l1x1 线段1的x1* @param l1y1 线段1的y1* @param l1x2 线段1的x2* @param l1y2 线段1的y2* @param l2x1 线段2的x1* @param l2y1 线段2的y1* @param l2x2 线段2的x2* @param l2y2 线段2的y2* @return 是否相交*/public static boolean intersection(double l1x1, double l1y1, double l1x2, double l1y2,
double l2x1, double l2y1, double l2x2, double l2y2){// 快速排斥实验 首先判断两条线段在 x 以及 y 坐标的投影是否有重合。 有一个为真,则代表两线段必不可交。if (Math.max(l1x1,l1x2) < Math.min(l2x1 ,l2x2)|| Math.max(l1y1,l1y2) < Math.min(l2y1,l2y2)|| Math.max(l2x1,l2x2) < Math.min(l1x1,l1x2)|| Math.max(l2y1,l2y2) < Math.min(l1y1,l1y2)){return false;}// 跨立实验  如果相交则矢量叉积异号或为零,大于零则不相交if ((((l1x1 - l2x1) * (l2y2 - l2y1) - (l1y1 - l2y1) * (l2x2 - l2x1)) * ((l1x2 - l2x1) * (l2y2 - l2y1) - (l1y2 - l2y1) * (l2x2 - l2x1))) > 0|| (((l2x1 - l1x1) * (l1y2 - l1y1) - (l2y1 - l1y1) * (l1x2 - l1x1)) * ((l2x2 - l1x1) * (l1y2 - l1y1) - (l2y2 - l1y1) * (l1x2 - l1x1))) > 0){return false;}return true;}

参考:https://blog.csdn.net/qq826309057/article/details/70942061

java判断两线段是否相交相关推荐

  1. python判断两线段是否相交_c语言 判断两直线段是否相交

    转了多人的放到一起比较!! //功能:求点在有向直线左边还是右边 //返回:0共线.1左边.-1右边 intleft_right(pointa,pointb,doublex,doubley) { do ...

  2. [GIS算法] 判断两线段是否相交的四种方案(快速排斥+跨立实验、参数方程求解、凸多边形、点在线的哪一侧)-附C语言实现

    文章目录 算法一:快速排斥+跨立试验 代码 算法二:参数方程求解 代码 算法三:凸多边形 算法四:点在线的哪一侧 算法一:快速排斥+跨立试验 重点掌握 [原理]利用矢量的叉乘 [图解] 代码 #def ...

  3. hdu 1086(判断两线段是否相交)

    题意:给出一些线段,问有多少个交点. 解题思路:这里实际就是一个线段相交的模型,下面这个图给出了思路. 如果两线段相交,则两线段必然相互跨立对方.若P1P2跨立Q1Q2 ,则矢量 ( P1 - Q1 ...

  4. 判断两线段是否相交——快速排斥与跨立实验

    如何判断两条线段是否相交呢?如果是我们去解决这个问题,用眼睛很容易就看出来了,但是如果用计算机来解决这个问题,该怎么办呢?下面介绍两个方法,这两个方法结合起来就能完美解决这个问题了. 一.快速排斥 对 ...

  5. 判断两线段是否相交,并求交点

    首先, 上个示意图. 根据图示, 线段a表示为端点a1和a2, 线段b表示为端点b1和b2. 为了利用向量的叉乘关系, 将线段的端点看成四个向量, 下面用粗体表示向量. 根据向量运算可知 a=a2-a ...

  6. nyoj1016德莱联盟【判断两线段是否相交】

    德莱联盟 时间限制:1000ms  |  内存限制:65535KB 难度:1 描述 欢迎来到德莱联盟.... 德莱文... 德莱文在逃跑,卡兹克在追.... 我们知道德莱文的起点和终点坐标,我们也知道 ...

  7. 判断三维空间两线段是否相交(附代码)

    文章目录 一.推导过程 二.MATLAB代码   博文: 计算几何--判断两线段是否相交,提供了判断两线段是否相交的方法以及代码.然而,只是考虑了平面的情况.本博文提供一种简单有效的方法判断三维空间两 ...

  8. python 求两线段是否相交,如果相交求交点

    代码如下,cal_point = False 不输出交点,cal_point = True 输出交点 def cross(p1,p2,p3):#跨立实验     x1=p2.x-p1.x     y1 ...

  9. 快速排斥实验amp;跨立实验 判断两直线是否相交

    两条线段有且仅有一个公共点,且这个点不是任何一条线段的端点时,称这两条线段是严格相交的. 也就是说线段不严格相交时可以将端点作为交点,但本文不讨论不严格相交,只讨论严格相交的情况(即使它们在算法实现上 ...

最新文章

  1. 进程状态控制-进程的挂起和激活
  2. python练习2 购物车程序
  3. python图画制作_用Python把照片制作成素描图片
  4. sdn体系的三个平面_十张图看懂SDN与NFV的区别与联系?
  5. 适用于Java开发人员的Elasticsearch:简介
  6. [BZOJ 1588] [HNOI 2002] 营业额统计
  7. ecs 云服务器 管理控制台_【弹性计算】教您快速学会云服务器ECS 创建命令!
  8. Restful 表述性状态传递
  9. 跳过17:30,跳过瑞星定时扫描
  10. 【Longest Palindromic Substring】cpp
  11. IDEA 卡成球了 !咋优化 ?
  12. Node.js开发指南中的例子(mysql版)
  13. 创建属于自己的OneNote插件
  14. 华为网关服务器型号,02311CWM CN21ITGC SP212 I350-T4 华为服务器四口千兆网卡
  15. C# 将方形图片剪切为圆形(winForm)
  16. Doctype 作用? 严格模式与混杂模式-如何触发这两种模式,区分它们有何意义?
  17. MIUI打开相册怎么默认显示全部照片_小米手机让相册默认展示所有图片怎么设置?
  18. Python递归学习6 涂格子问题
  19. 使用Pandas的read_html方法读取网页Table表格数据
  20. 还不了解什么是商业智能(BI)?看完这篇文章就懂了

热门文章

  1. 有道精品课数据中台建设实践
  2. 【报告分享】美好城市指数:短视频与城市繁荣关系白皮书.pdf(附下载链接)...
  3. 【报告分享】2019中国青年理想城报告(含城市青和力TOP100).pdf
  4. 牛客网编程题——字符串_确定两串乱序同构
  5. word2vec中的数学模型
  6. java win 窗体开发简单订餐系统_Java实现简单订餐系统
  7. linux 时间怎么求差值_linux 时间戳及时间差计算
  8. ROS入门-16.tf坐标系广播与监听的编程实现
  9. 吴恩达|机器学习作业2.1正则化的Logistic回归
  10. GitHub Pages自定义域名如何支持https