栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

在python中找到线与圆的交点的最有效方法是什么?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

在python中找到线与圆的交点的最有效方法是什么?

我想也许您的问题是理论上如何以最快的方式做到这一点。但是,如果您想快速执行此操作,则应真正使用以C / C ++编写的内容。

我已经习惯了Shapely,所以我将提供一个如何使用此库的示例。有许多用于python的几何库。我将在此答案的结尾列出它们。

from shapely.geometry import LineStringfrom shapely.geometry import Pointp = Point(5,5)c = p.buffer(3).boundaryl = LineString([(0,0), (10, 10)])i = c.intersection(l)print i.geoms[0].coords[0](2.8786796564403576, 2.8786796564403576)print i.geoms[1].coords[0](7.121320343559642, 7.121320343559642)

在Shapely中有点反直觉的是,圆是具有缓冲区的点的边界。这就是为什么我这样做

p.buffer(3).boundry

交集

i
也是一个几何形状的列表,在这种情况下它们都是点,这就是为什么我必须从中获得它们的原因
i.geoms[]

还有另一个Stackoverflow问题,针对那些感兴趣的人来介绍有关这些库的详细信息。

  • 象征
  • CGAL Python绑定
  • 欧几里德
  • PythonOCC
  • 几何简单

编辑,因为评论:

Shapely基于GEOS(trac.osgeo.org/geos),它是用C
++构建的,并且比您用python本地编写的任何东西都要快得多。SymPy似乎基于mpmath(mpmath.org),后者也似乎是python,但似乎其中集成了许多非常复杂的数学。实现自己可能需要大量工作,并且可能不会像GEOS
C ++实现那样快。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/625951.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号