every blog every motto: You can do more than you think.
https://blog.csdn.net/weixin_39190382?type=blog

0. 前言

python 求直线与多边形交点并显示

1. 正文

1.1 步骤

import matplotlib.pyplot as plt
from shapely.geometry import LineString, Polygon

导入所需的模块和函数:

import matplotlib.pyplot as plt
from shapely.geometry import LineString, Polygon

创建直线对象和多边形对象:

line = LineString([(x1, y1), (x2, y2)])
polygon = Polygon([(x3, y3), (x4, y4), ..., (xn, yn)])

提取多边形的边界作为LineString对象:

boundary = polygon.boundary

计算直线与多边形边界的交点:

intersection = line.intersection(boundary)

将交点转换为MultiPoint对象(如果有多个交点)或Point对象(如果只有一个交点):

if intersection.geom_type == 'MultiPoint':intersection_points = list(intersection)
else:intersection_points = [intersection]

绘制多边形、直线和交点

fig, ax = plt.subplots()
ax.plot(*boundary.xy, label='Polygon')
ax.plot(*line.xy, label='Line')for point in intersection_points:ax.plot(*point.xy, 'ro', label='Intersection')ax.legend()
plt.show()

1.2 完整代码

import matplotlib.pyplot as plt
from shapely.geometry import LineString, Polygon# 创建直线对象和多边形对象
line = LineString([(0, 0), (3, 5)])
polygon = Polygon([(1, 1), (1, 4), (4, 4), (4, 1)])# 提取直线的起点和终点坐标以及多边形的边界坐标
line_coords = line.xy
boundary_coords = polygon.boundary.xy# 计算直线与多边形边界的交点
boundary = polygon.boundary
intersection = line.intersection(boundary)if intersection.geom_type == 'MultiPoint':intersection_points = list(intersection)
else:intersection_points = [intersection]fig, ax = plt.subplots()
ax.plot(*boundary.xy, label='Polygon')
ax.plot(*line.xy, label='Line')for point in intersection_points:ax.plot(*point.xy, 'ro', label='Intersection')ax.legend()
plt.show()

【交点】直线与多边形相交显示相关推荐

  1. c语言直线和椭圆的交点,直线与椭圆相交求交点

    已知a,b和直线上的两点,中心在原点,求直线与椭圆相交求交点坐标 #include #include #include void main() { double a,b,c,x1,x2,y1,y2,k ...

  2. 平面图形原理总结(3):多边形相交

    前言 继续总结关于图形学的问题,这次总结下多边行的相交问题,同样可以自行阅读参考文献了解,以下是本人的自行总结内容. 参考文献:<计算机图形学--用OpenGL实现(第2版)> 清华大学出 ...

  3. opengl基础学习专题 (二) 点直线和多边形

    题外话 随着学习的增长,越来越觉得自己很水.关于上一篇博文中推荐用一个 学习opengl的 基于VS2015的 simplec框架.存在 一些问题. 1.这个框架基于VS 的Debug 模式下,没有考 ...

  4. C++实现glut绘制点、直线、多边形、圆

    C++实现glut绘制点.直线.多边形.圆 必备环境 glut.h 头文件 glut32.lib 对象文件库 glut32.dll 动态连接库 程序说明 C++实现了用glut画点.画直线.画多边形和 ...

  5. OpenGL学习笔记:画点、直线和多边形(第二讲)

    1.关于点  点的大小默认为1个像素,但也可以改变之. 改变的命令为glPointSize,其函数原型如下:  void glPointSize(GLfloat size);  size必须大于0.0 ...

  6. OpenGL学习笔记:画点、直线和多边形(第一讲)

    我的运行环境: CentOS7 g++ (GCC) 4.8.5 20150623 (Red Hat 4.8.5-16) OpenGL实现厂商的名字:VMware, Inc. 渲染器标识符:Galliu ...

  7. POJ 1584 A Round Peg in a Ground Hole(点到直线距离,圆与多边形相交,多边形是否为凸)...

    题意:给出一个多边形和一个圆,问是否是凸多边形,若是则再问圆是否在凸多边形内部. 分3步: 1.判断是否是凸多边形 2.判断点是否在多边形内部 3.判断点到各边的距离是否大于等于半径 上代码: #in ...

  8. 判断两个多边形相交的面积_聊聊3D模型组件—顶点,边,多边形

    3D模型设计 什么是3D模型? 3D模型是3D软件环境中任何三维对象(真实或虚构)的数学表示.与此不同,可以在专用软件套件中从任何角度查看3D模型,并且可以缩放,旋转或自由修改3D模型.创建和成形3D ...

  9. poj 3082多边形相交 'Roid Rage

    题意是判断多边形是否相交 主要的思路就是判断每一个点是否在另外的多变形内 判断一个点是否在另一个多边形内主要思路是: 判断的那个点向左边做射线,如果射线与多边形的交点为奇数个则在多边形内,偶数个则不在 ...

最新文章

  1. 关于Could not parse configuration: /hibernate.cfg.xml的问题
  2. 解题报告+优化——试题 基础练习 矩形面积交——16行代码AC
  3. ASP.NET Core端点路由中三种让人困惑的路由函数
  4. 程序员因拒绝带电脑回家工作被开除!获赔19.4万元
  5. 谷歌挖角亚马逊首席AI研究员,推特工程副总裁投奔亚马逊
  6. Linux下eclipse中shell脚本编程环境的搭建
  7. python元祖组成字典_Python之旅第四天(列表、元祖、字典和习题)
  8. 进程 线程 协程_进程 线程 协程 管程 纤程 概念对比理解
  9. 《麦肯锡方法》读书笔记17
  10. java导出excel 自定义表头
  11. walking机器人仿真教程-应用-多点导航结合闹铃播放实现移动闹钟
  12. wei dian 使用的一点小技巧
  13. ubuntu14.04 desktop 32-bit kvm装windows xp
  14. iphone上app store切换国家和地区
  15. 迟来的2021年终总结,2022已开始,Good luck every one! No pain No gain!
  16. 更换android开机动画须选择好正确的压缩格式
  17. Flask表单提交的方法
  18. Pandas学习笔记(一)
  19. java博客论坛设计报告_javaweb课程设计报告个人博客网站的实现(Java).doc
  20. 最新 UltraEdit 24.20 注册成功经验分享

热门文章

  1. Matlab如何安装k-Wave
  2. Penetration Test 渗透测试
  3. Sdimt领先的最佳排名研究所,学院和商学院在印度哈里亚纳邦德里NCR法里达巴德
  4. 一款轻量级项目工时统计系统,源码分享
  5. u盘删除的文件还能找回吗?
  6. matlab单位采样序列程序,常用序列的MATLAB实现
  7. NAT模式下的虚拟机网络配置
  8. java实现远程windows系统控制
  9. puzzle(1011)《平面逆推》扫雷
  10. 简单模式匹配算法和KMP算法