python中的好几何库?

Ste*_*ini 92 python geometry

我正在寻找一个好的,发展良好的库,用于python中的几何操作和评估,例如:

  • 评估2D和3D中两条线之间的交集(如果存在)
  • 评估平面和直线之间的交点,或两个平面之间的交线
  • 评估线和点之间的最小距离
  • 找到通过一个点的平面的正交
  • 旋转,平移,镜像一组点
  • 找到由四个点定义的二面角

我有一本关于所有这些操作的概要书,我可以实现它但不幸的是我没有时间,所以我会喜欢这样做的图书馆.大多数操作对于游戏目的都很有用,所以我确信其中一些功能可以在游戏库中找到,但我不希望包含我不需要的功能(例如图形).

有什么建议 ?谢谢

Joh*_*n Y 34

也许看看SymPy.

  • SymPy的几何模块也可以非常非常慢.由于它是为符号数学而设计的,因此它更喜欢在近似浮点值上使用精确表达式.考虑到几何计算中通常涉及的平方根的数量,您可以想象这些表达式是如何变得非常大且非常慢的. (3认同)
  • 更新到[SymPy](http://docs.sympy.org/latest/modules/geometry/line3d.html)现在也包含3D库 (3认同)
  • 它并没有真正满足我的要求,但它确实是一个很酷的项目,所以我接受你的答案作为一个有趣的建议也是为了未来(因为SymPy有一个几何模块,和大量的开发人员) (2认同)
  • 遗憾的是只有2d。并不是真正的建设性几何引擎。 (2认同)

A. *_*ady 27

Shapely是流行的GEOS库周围不错的python包装器.

  • 关于3D几何的说法:"构造实例时可以使用第三个z坐标值,但对几何分析没有影响.所有操作都在xy平面上执行." (14认同)
  • 似乎非常关注GIS数据处理,而不是纯粹的"数学几何"(可以这么说) (6认同)
  • 上面的评论花了我大约半小时的编码才发现.真的很激动. (3认同)
  • 它当然是为GIS社区创建的,但它故意不了解地理投影,因此可以很好地用作通用的欧几里德几何库.我在新生的计算机游戏项目中大量使用它,它工作正常. (2认同)
  • 当问题特别要求 3D 时,为什么只投一个反对票? (2认同)

Dov*_*eld 14

我发现pyeuclid是一个非常简单的通用欧几里德数学包.虽然库可能不完全包含您提到的问题,但它的基础结构足以让您轻松自行编写这些问题.


Agn*_*ian 10

CGAL也有Python绑定.

  • 最后一个版本是2009年,它们似乎不完整.谁能说他们最近使用过它们,并且他们可以使用绑定来解决问题中提到的问题? (3认同)

den*_*nis 6

geometry-simple在~300行中具有Point Line Plane Movement类,仅使用numpy; 看一看.


Ben*_*der 6

我真的想要对这个问题给出一个很好的答案,而上面的问题让我不满意.然而,我刚刚遇到pythonocc看起来很棒,除了缺乏良好的文档,仍然有一些安装问题(还没有兼容pypi).最后一次更新是在4天前(2011年6月19日).它包含OpenCascade,它具有大量的几何和建模功能.来自pythonocc网站:

pythonOCC是Python编程语言的3D CAD/CAE/PLM开发框架.它提供诸如高级拓扑和几何操作,数据交换(STEP,IGES,STL导入/导出),2D和3D网格划分,刚体仿真,参数化建模等功能.

[编辑:我现在已经下载了pythonocc并开始研究一些例子]

我相信它可以执行所提到的所有任务,但我发现使用它是不直观的.它几乎完全由SWIG包装器创建,因此,对命令的内省变得困难.