python - 如何在matplolib图中找到多条线的交点
问题描述
我有这段代码来绘制多条线(图 1)。我怎样才能找到这些线的交点?
import matplotlib.pylab as pyl
import numpy as np
import math
x = [200, 300, 300, 200,200]
y = [150, 150, 100, 100,140]
x1 = [100, 400]
y1 = [50, 250]
pyl.plot(x, y, 'r')
pyl.plot(x1, y1, 'c')
pyl.xlim(0, 480)
pyl.ylim(0, 320)
pyl.grid(True)
pyl.show()
解决方案
我喜欢身材匀称的这类问题
from shapely.geometry import LineString, Polygon
x = [200, 300, 300, 200, 200]
y = [150, 150, 100, 100, 140]
x1, x2 = [100, 400]
y1, y2 = [50, 250]
poly = Polygon([(x, y) for x, y in zip(x, y)])
line = LineString([(x1, y1), (x2, y2)])
cross = poly.intersection(line)
[px1, px2], [py1, py2] = cross.coords.xy
p1 = (px1, py1) # (200, 116,66)
p2 = (px2, py2) # (250, 150)
推荐阅读
- reactjs - 如何对前端收到的 POST 请求进行操作?
- flutter - Flutter 登录/注销按钮实现
- python - 使用 BeautifulSoup 抓取 Javascript 注入的文本
- flutter - 我该怎么做才能拯救未来
在 Flutter 中使用 SharePreferences? - java - 带有圆括号表达式的 Spring Boot JPA 子查询
- azure - 有没有办法限制卡在 Azure DevOps 中从已解决到活动的移动?
- javascript - 在本地存储中设置对象的值
- javascript - 将索引作为键,这是一个好习惯吗?还是我应该使用 react-uuid?
- aggregate - DDD - 大型聚合并在聚合之间强制不变
- javascript - 无法使用浏览器控制台中的 javascript 从网站获取 html 正文