求四点的交点(两线段的交点)
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]
求四点的交点(两线段的交点)相关推荐
- 判断两线段是否相交,并求交点
首先, 上个示意图. 根据图示, 线段a表示为端点a1和a2, 线段b表示为端点b1和b2. 为了利用向量的叉乘关系, 将线段的端点看成四个向量, 下面用粗体表示向量. 根据向量运算可知 a=a2-a ...
- 判断三维空间两线段是否相交(附代码)
文章目录 一.推导过程 二.MATLAB代码 博文: 计算几何--判断两线段是否相交,提供了判断两线段是否相交的方法以及代码.然而,只是考虑了平面的情况.本博文提供一种简单有效的方法判断三维空间两 ...
- python 求两线段是否相交,如果相交求交点
代码如下,cal_point = False 不输出交点,cal_point = True 输出交点 def cross(p1,p2,p3):#跨立实验 x1=p2.x-p1.x y1 ...
- Bentley-Ottmann算法:求N条线段的交点
Bentley-Ottmann算法:求N条线段的交点 Bentley-Ottmann算法 算法复杂度 1. 使用暴力求解,遍历每一条线段 i ,固定 i 遍历 j 与 i 是否存在交点: 2. 此时我 ...
- 求两条曲线的交点 matlab,matlab求两条曲线交点
用Matlab 实现了 3 次样条曲线插值的算法.边界条件取为自然边界条件,即:... 二元一次函数曲线拟合的Matlab实现_IT/计算机_专业资料.第 27 卷 1... (x1)); y2=in ...
- java 获取两条经纬度线段的交点坐标工具类
java 获取两条经纬度线段的交点坐标工具类 网上有线段是否相交的判断方法,但是很少有获取线段交点的坐标的方法 我在这里整合了网上的一些相交的方法,通过相交的xy轴点返推出了经纬度. 拾取坐标系统 可 ...
- 求直线(线段)与直线(线段)的交点
知识储备: 叉乘:http://blog.csdn.net/nightmare_ak/article/details/77199940 定比分点法:http://blog.csdn.net/night ...
- Unity求一条直线与平面的交点
这个是面试官经常考的一个问题,我们先把它变成一个数学问题. 已知一个平面上的一点P0和法向量n,一条直线上的点L0和方向L,求该直线与该平面的交点P 如下图 首先我们分析一下我们知道平面和直线的法向量 ...
- 用Origin找两曲线的交点
用Origin找两曲线的交点 Select Gadgets: Intersect... from the main menu to open the dialog. Go to the Options ...
最新文章
- 网络编程 -- RPC实现原理 -- RPC -- 迭代版本V3 -- 远程方法调用 整合 Spring
- 深入理解傅立叶变换(详细)
- 纯java应用搭建,16、BoneCp纯java项目使用
- pkcs1转pkcs8 php,openssl RSA密钥格式PKCS1和PKCS8相互转换
- 如何测试软件的性能瓶颈,性能测试如何定位瓶颈
- oracle rman 实例,Oracle数据库rman常用命令的使用示例
- Python实现学生出勤记录
- LINQ简记(3):子句
- 跨平台即时通讯解决方案
- oled显示GIF动图
- Ubuntu下安装Maskrcnn_benchmark(pytorch)踩坑分享
- postgis——几何图形创建使用
- 在浏览器拉起应用的方式
- IT职场生活工作感悟
- PyTorch模型训练的几个加速技巧
- java MP4 解析 第一步 解析ftyp box
- 下列不是python对文件的读操作方法_以下选项不是Python文件读操作
- 关于搜狗输入法如何导入本地词库(超详细版)
- pgsql 创建dp_link
- php获取12306余票,获取12306余票信息
热门文章
- 漫谈TCP拥塞控制算法(2)
- vscode配置C++环境(图文详解)
- java工作两年可以转算法吗_java转算法后平淡的一年(迷茫2019)
- JAVA内存管理机制
- 基于Python实现的蛋白质二级结构预测
- 处女项目后关于IC验证经验的总结
- Python 语言创建 HyerMesh Tcl 命令流
- WordPress独立后台高端二开黑金壁纸微信小程序源码
- 获取当前时间年月周(按每月周一开始到周日算第一周)
- c语言课程网页设计HTML,网页设计与制作(HTML+CSS+JavaScript)(张洪斌 刘万辉)课程标准...