1、根据四点直接计算出交点坐标:

def calPoint(pt1, pt2, imgShape):pt11X = pt1[0]pt11Y = pt1[1]pt12X = pt1[2]pt12Y = pt1[3]pt21X = pt2[0]pt21Y = pt2[1]pt22X = pt2[2]pt22Y = pt2[3]tmpDen = (pt12Y-pt11Y)*(pt22X-pt21X) - (pt12X-pt11X)*(pt22Y-pt21Y)tmpMol1 = pt21Y*pt22X - pt21X*pt22YtmpMol2 = pt11Y*pt12X - pt11X*pt12YptX = ((pt21X-pt22X)*tmpMol2 - (pt11X-pt12X)*tmpMol1)/tmpDenptY = ((pt21Y-pt22Y)*tmpMol2 - (pt11Y-pt12Y)*tmpMol1)/tmpDenif ptX < 0:ptX = 0elif ptX > imgShape[1]:ptX = imgShape[1]if ptY < 0:ptY = 0elif ptY > imgShape[0]:ptY = imgShape[0]   ptSize = ptY*imgShape[1] + ptXreturn [ptX, ptY, ptSize]

2、先分别计算线段的直线方程,然后根据两线段的直线方程求交点:

def calPoint1(pt1, pt2, imgShape):temp = (pt1[0] - pt1[2])*1.0if abs(temp) == 0.0:temp = 0.0001slope1 = (pt1[1]-pt1[3])/temptemp = (pt2[0] - pt2[2])*1.0if abs(temp) == 0.0:temp = 0.0001slope2 = (pt2[1]-pt2[3])/temptemp = slope2-slope1if abs(temp) == 0.0:temp = 0.0001ptX = (pt1[1] - pt2[1] + slope2*pt2[0] - slope1*pt1[0])/tempptY = slope1*(ptX-pt1[0]) + pt1[1]return [ptX, ptY]

求四点的交点(两线段的交点)相关推荐

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

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

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

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

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

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

  4. Bentley-Ottmann算法:求N条线段的交点

    Bentley-Ottmann算法:求N条线段的交点 Bentley-Ottmann算法 算法复杂度 1. 使用暴力求解,遍历每一条线段 i ,固定 i 遍历 j 与 i 是否存在交点: 2. 此时我 ...

  5. 求两条曲线的交点 matlab,matlab求两条曲线交点

    用Matlab 实现了 3 次样条曲线插值的算法.边界条件取为自然边界条件,即:... 二元一次函数曲线拟合的Matlab实现_IT/计算机_专业资料.第 27 卷 1... (x1)); y2=in ...

  6. java 获取两条经纬度线段的交点坐标工具类

    java 获取两条经纬度线段的交点坐标工具类 网上有线段是否相交的判断方法,但是很少有获取线段交点的坐标的方法 我在这里整合了网上的一些相交的方法,通过相交的xy轴点返推出了经纬度. 拾取坐标系统 可 ...

  7. 求直线(线段)与直线(线段)的交点

    知识储备: 叉乘:http://blog.csdn.net/nightmare_ak/article/details/77199940 定比分点法:http://blog.csdn.net/night ...

  8. Unity求一条直线与平面的交点

    这个是面试官经常考的一个问题,我们先把它变成一个数学问题. 已知一个平面上的一点P0和法向量n,一条直线上的点L0和方向L,求该直线与该平面的交点P 如下图 首先我们分析一下我们知道平面和直线的法向量 ...

  9. 用Origin找两曲线的交点

    用Origin找两曲线的交点 Select Gadgets: Intersect... from the main menu to open the dialog. Go to the Options ...

最新文章

  1. 网络编程 -- RPC实现原理 -- RPC -- 迭代版本V3 -- 远程方法调用 整合 Spring
  2. 深入理解傅立叶变换(详细)
  3. 纯java应用搭建,16、BoneCp纯java项目使用
  4. pkcs1转pkcs8 php,openssl RSA密钥格式PKCS1和PKCS8相互转换
  5. 如何测试软件的性能瓶颈,性能测试如何定位瓶颈
  6. oracle rman 实例,Oracle数据库rman常用命令的使用示例
  7. Python实现学生出勤记录
  8. LINQ简记(3):子句
  9. 跨平台即时通讯解决方案
  10. oled显示GIF动图
  11. Ubuntu下安装Maskrcnn_benchmark(pytorch)踩坑分享
  12. postgis——几何图形创建使用
  13. 在浏览器拉起应用的方式
  14. IT职场生活工作感悟
  15. PyTorch模型训练的几个加速技巧
  16. java MP4 解析 第一步 解析ftyp box
  17. 下列不是python对文件的读操作方法_以下选项不是Python文件读操作
  18. 关于搜狗输入法如何导入本地词库(超详细版)
  19. pgsql 创建dp_link
  20. php获取12306余票,获取12306余票信息

热门文章

  1. 漫谈TCP拥塞控制算法(2)
  2. vscode配置C++环境(图文详解)
  3. java工作两年可以转算法吗_java转算法后平淡的一年(迷茫2019)
  4. JAVA内存管理机制
  5. 基于Python实现的蛋白质二级结构预测
  6. 处女项目后关于IC验证经验的总结
  7. Python 语言创建 HyerMesh Tcl 命令流
  8. WordPress独立后台高端二开黑金壁纸微信小程序源码
  9. 获取当前时间年月周(按每月周一开始到周日算第一周)
  10. c语言课程网页设计HTML,网页设计与制作(HTML+CSS+JavaScript)(张洪斌 刘万辉)课程标准...