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. 计算机制造理论,计算制造
  2. HTTP隧道工具HTTPTunnel
  3. 文件上传oss服务器
  4. mysql iops_MySQL实例IOPS使用率高的原因和解决方法
  5. Bumblebee微服务网关之负载策略
  6. 链表题目---4 删除链表中重复的结点 和 判断链表是否为回文链表
  7. springMVC rest风格
  8. 问题与事务跟踪系统jira中的版本管理
  9. ios 自定义圆环进度条
  10. STM32中断应用总结
  11. 基于jquery的异步提交例子
  12. Java学习笔记(六)数据的操作(增、删、改的操作)
  13. 【COCOS2DX-LUA 脚本开发之十二】Hybrid模式-利用AssetsManager实现在线更新脚本文件lua、js、图片等资源(免去平台审核周期)...
  14. 非因解读 | 单细胞空间蛋白质组学分析揭示临床显著性前列腺癌多参数相关MRI检查的异质性
  15. github代理地址
  16. php 二维数组根据某个键值倒叙、升序排序
  17. 〖Python 数据库开发实战 - Python与MySQL交互篇⑩〗- 创建新闻管理系统的具体python文件
  18. java常见的密码加密方式base64,Sha256,MD5
  19. 字节跳动今日头条笔试题目经历2018
  20. BiSS-C的基本组网原理介绍

热门文章

  1. 在虚拟主机上 php下载,在虚拟主机上复制安装本机Pear_PHP教程
  2. 2014年11月19日
  3. 以发票为切口有效规避企业税务风险
  4. “微”力无穷——微信营销的创意之道
  5. 音视频基础——视频基础知识
  6. R5F102A8ASP#V0 16位微控制器 - MCU RL78G12 8+2/768B 30SSOP R5F102A8ASP#30
  7. 51单片机使用RTX实时操作系统
  8. Faster RCNN流程图
  9. FasterRcnn原理理解记录
  10. 示例教程:在C#中将MS Visio图表转换为PDF