假设我们有两个由两个点(在两个空间中)定义的有限线段。我想找到一种方法来获取这两条线的交点。最终,我想将其扩展到适用于连接的线段集。
我在这里找到了一个很好的解决方案:Python-matplotlib:找到lineplots的交集。但是,这依赖于scipy,我认为这需要BLAS,出于不同的原因,我想避免使用BLAS。
matplotlib有一个称为Path的模块,该模块具有一个intersects_path()函数(http://matplotlib.org/api/path_api.html#matplotlib.path.Path.intersects_path),该函数针对相交的存在返回true或false,但是不是我需要的特定位置。
有谁知道一个干净的方法吗?
我想出的任何解决方案都是冗长的,而且如果已经存在解决方案,我真的希望不要重新发明轮子。
谢谢!
为了完整起见,我想我会发布最终使用的解决方案。
使用Shapely(https://pypi.python.org/pypi/Shapely),代码看起来像这样简单:
from shapely.geometry import LineString
line1 = LineString([(0,0), (1,0), (1,1)])
line2 = LineString([(0,1), (1,1)])
print(line1.intersection(line2))
返回值:
POINT (1 1)
这样做的好处是它将无缝处理单点相交和线段相交,并且可以将相同的技术应用于更复杂的对象。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句