【交点】直线与多边形相交显示
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()
【交点】直线与多边形相交显示相关推荐
- c语言直线和椭圆的交点,直线与椭圆相交求交点
已知a,b和直线上的两点,中心在原点,求直线与椭圆相交求交点坐标 #include #include #include void main() { double a,b,c,x1,x2,y1,y2,k ...
- 平面图形原理总结(3):多边形相交
前言 继续总结关于图形学的问题,这次总结下多边行的相交问题,同样可以自行阅读参考文献了解,以下是本人的自行总结内容. 参考文献:<计算机图形学--用OpenGL实现(第2版)> 清华大学出 ...
- opengl基础学习专题 (二) 点直线和多边形
题外话 随着学习的增长,越来越觉得自己很水.关于上一篇博文中推荐用一个 学习opengl的 基于VS2015的 simplec框架.存在 一些问题. 1.这个框架基于VS 的Debug 模式下,没有考 ...
- C++实现glut绘制点、直线、多边形、圆
C++实现glut绘制点.直线.多边形.圆 必备环境 glut.h 头文件 glut32.lib 对象文件库 glut32.dll 动态连接库 程序说明 C++实现了用glut画点.画直线.画多边形和 ...
- OpenGL学习笔记:画点、直线和多边形(第二讲)
1.关于点 点的大小默认为1个像素,但也可以改变之. 改变的命令为glPointSize,其函数原型如下: void glPointSize(GLfloat size); size必须大于0.0 ...
- OpenGL学习笔记:画点、直线和多边形(第一讲)
我的运行环境: CentOS7 g++ (GCC) 4.8.5 20150623 (Red Hat 4.8.5-16) OpenGL实现厂商的名字:VMware, Inc. 渲染器标识符:Galliu ...
- POJ 1584 A Round Peg in a Ground Hole(点到直线距离,圆与多边形相交,多边形是否为凸)...
题意:给出一个多边形和一个圆,问是否是凸多边形,若是则再问圆是否在凸多边形内部. 分3步: 1.判断是否是凸多边形 2.判断点是否在多边形内部 3.判断点到各边的距离是否大于等于半径 上代码: #in ...
- 判断两个多边形相交的面积_聊聊3D模型组件—顶点,边,多边形
3D模型设计 什么是3D模型? 3D模型是3D软件环境中任何三维对象(真实或虚构)的数学表示.与此不同,可以在专用软件套件中从任何角度查看3D模型,并且可以缩放,旋转或自由修改3D模型.创建和成形3D ...
- poj 3082多边形相交 'Roid Rage
题意是判断多边形是否相交 主要的思路就是判断每一个点是否在另外的多变形内 判断一个点是否在另一个多边形内主要思路是: 判断的那个点向左边做射线,如果射线与多边形的交点为奇数个则在多边形内,偶数个则不在 ...
最新文章
- 计算机制造理论,计算制造
- HTTP隧道工具HTTPTunnel
- 文件上传oss服务器
- mysql iops_MySQL实例IOPS使用率高的原因和解决方法
- Bumblebee微服务网关之负载策略
- 链表题目---4 删除链表中重复的结点 和 判断链表是否为回文链表
- springMVC rest风格
- 问题与事务跟踪系统jira中的版本管理
- ios 自定义圆环进度条
- STM32中断应用总结
- 基于jquery的异步提交例子
- Java学习笔记(六)数据的操作(增、删、改的操作)
- 【COCOS2DX-LUA 脚本开发之十二】Hybrid模式-利用AssetsManager实现在线更新脚本文件lua、js、图片等资源(免去平台审核周期)...
- 非因解读 | 单细胞空间蛋白质组学分析揭示临床显著性前列腺癌多参数相关MRI检查的异质性
- github代理地址
- php 二维数组根据某个键值倒叙、升序排序
- 〖Python 数据库开发实战 - Python与MySQL交互篇⑩〗- 创建新闻管理系统的具体python文件
- java常见的密码加密方式base64,Sha256,MD5
- 字节跳动今日头条笔试题目经历2018
- BiSS-C的基本组网原理介绍