Python 中的 3D 几何拓扑(例如交集)

seb*_*piq 5 python geometry geos

我正在使用 GEOS(在 Python/Django 中)来操作一些 3d 元素。所有拓扑操作都可以在 2D 中完美运行。所以,我MultiPolygon用 3D 多边形创建了一个简单的(实际上很简单,它只是一个垂直平面的集合),一个LineString也是 3D 的。现在我只想要那些的交集(我相信这将是一个 3D 点列表):

>>> l = LineString([0, 0, 0], [1, 1, 1])
>>> p = Polygon([[1, 0, 0], [0, 1, 0], [0, 1, 1000], [1, 0, 1000], [1, 0, 0]])
>>> p.intersects(l)
False
Run Code Online (Sandbox Code Playgroud)

好吧,geos 不支持使用 3D 数据进行拓扑操作……嗯,肯定有很多库可以为我做到这一点,对吗????所以我用谷歌搜索,我找不到一个!!!所以如果有人有一个指针,那就太好了......

编辑

有一个与Intersections of 3D polygons in python类似的问题,但这并没有给出任何令人满意的答案(见评论)。

And*_*ker 3

我仍然不相信有一个“好的选择”的库可以在 python 中执行此操作,但许多有前途的项目正在进行中,其中最重要的是改进了google 代码上的cgal 绑定

CGAL 从版本 4 开始的新许可条件 (GPL/LGPL) 也使得有关此主题的原始问题的某些部分已经过时。