用Python求两条线段的交点,包括延长线的交点

  • 代码
  • 结果如图


代码

import numpy as np
import matplotlib.pyplot as pltdef line_intersection(A, B, C, D):a1 = B[1] - A[1]b1 = A[0] - B[0]c1 = a1 * A[0] + b1 * A[1]a2 = D[1] - C[1]b2 = C[0] - D[0]c2 = a2 * C[0] + b2 * C[1]determinant = a1 * b2 - a2 * b1if determinant == 0:return None  # lines are parallelx = (b2 * c1 - b1 * c2) / determinanty = (a1 * c2 - a2 * c1) / determinantreturn (x, y)A = (1,1)
B = (5,5)
C = (3,0)
D = (0,3)intersection = line_intersection(A, B, C, D)
if intersection:x, y = intersectionprint(f"Intersection at ({x:.1f}, {y:.1f})")
else:print("Lines do not intersect.")# Plotting the lines
fig, ax = plt.subplots()
ax.plot([A[0], B[0]], [A[1], B[1]], 'r', label='Line AB')
ax.plot([C[0], D[0]], [C[1], D[1]], 'b', label='Line CD')
if intersection:ax.plot(x, y, 'go', label='Intersection')
ax.legend()
plt.show()

结果如图



用Python求两条线段的交点,包括延长线的交点相关推荐

  1. python求两条线段的交点

    本来想找一段求线段交点的代码,但是网上很多的代码都没有考虑除0的特殊情况,所以自己写了一份.具体原理: 一般方程法: 直线的一般方程为F(x) = ax + by + c = 0.既然我们已经知道直线 ...

  2. 两条线段求交点+叉积求面积 poj 1408

    题目链接:https://vjudge.net/problem/POJ-1408 题目是叫我们求出所有四边形里最大的那个的面积. 思路:因为这里只给了我们正方形四条边上的点,所以我们要先计算横竖线段两 ...

  3. 平面内两条线段的位置关系(相交)判定与交点求解

    http://www.cnblogs.com/devymex/archive/2010/08/19/1803885.html 概念 平面内两条线段位置关系的判定在很多领域都有着广泛的应用,比如游戏.C ...

  4. c语言 两条线段位置,C++/STL实现判断平面内两条线段的位置关系代码示例

    概念 平面内两条线段位置关系的判定在很多领域都有着广泛的应用,比如游戏.CAD.图形处理等,而两线段交点的求解又是该算法中重要的一环.本文将尽可能用通俗的语言详细的描述一种主流且性能较高的判定算法. ...

  5. 求两条直线(线段)的交点

    转自: http://blog.csdn.net/dgq8211/article/details/7952825 如图,如何求得直线 AB 与直线 CD 的交点P? 以上内容摘自<算法艺术与信息 ...

  6. 两条线段之间的最短距离

    python两条线段之间的最短距离 from shapely.geometry import LineString a=LineString([(1,1),(3,5)]) b=LineString([ ...

  7. 位置关系C语言,C++/STL实现判断平面内两条线段的位置关系代码示例

    概念 平面内两条线段位置关系的判定在很多领域都有着广泛的应用,比如游戏.CAD.图形处理等,而两线段交点的求解又是该算法中重要的一环.本文将尽可能用通俗的语言详细的描述一种主流且性能较高的判定算法. ...

  8. 二维空间内,如何判断两条线段是否相交,相离,平行,重合,并求交点

    首先,假设有两条线段p,q,求这两条线段的空间关系. 我们把两条线段的四个顶点看为向量,用坐标表示:p1(p1x,p1y), p2(p2x,p2y), q1(q1x,q1y), q2(q2x, q2y ...

  9. 判断两条线段/直线相交,并求交点

      一.矢量基本知识     因为后面的计算需要一些矢量的基本知识,这里只是简单的列举如下,如果需要更加详细的信息,可以自行搜索wikipedia或google. 1.矢量的概念:如果一条线段的端点是 ...

最新文章

  1. 抓豆瓣的电影评论数据
  2. 构建高可用LVS + keepalived+httpd和双主模型的keepalived方案
  3. JavaScript 复习之 Array 对象
  4. Python中文分词--jieba的基本使用
  5. Apache RocketMQ在linux上的常用命令
  6. java 中的流_Java中的流(IO
  7. C和汇编----字符串
  8. 【Elasticsearch】elasticsearch 压缩索引 shrink
  9. 【设计模式】面向对象作业-超级母牛的故事
  10. 移动固态硬盘没有连接到计算机,移动固态硬盘装个Win to go,这才是移动固态硬盘正确的打开方式...
  11. Node之HTTPS客户端
  12. 阿里巴巴最新开源软件列表(建议收藏系列)
  13. Android 调用系统拍照后返回的图片变小了(变模糊了)
  14. TH75 V2 双模蓝牙5.2热插拔PCB
  15. 什么是bug(软件缺陷)
  16. python爬虫面试自我介绍范文_程序员求职面试自我介绍范文4篇
  17. babylon101| 08. Cameras, Mesh Collisions and Gravity(相机、碰撞和重力)
  18. Docker的退出后进入
  19. 自动作诗器 二逼青年立马变文艺青年~~
  20. Linux 中文乱码解决

热门文章

  1. 数据仓库-数据仓库元数据管理
  2. c语言中null和空格的区别,空字符串(“”)和null和空格字符串( )的区别
  3. 三本深圳大学计算机考研,“三本生”拼考研 重启“高考模式”
  4. 详解JSON.parse 和 JSON.stringify
  5. 2022年测试岗最新自动化测试面试题整理,干货满满
  6. 分类评估标准混淆矩阵(图像分类篇)
  7. Visp系列学习一:visp库的安装和测试
  8. Docker中批量删除 tag为“none“的镜像_dev_zyx的博客
  9. Excel怎么隐藏部分数据?
  10. 已解决Using TensorFlow backend.