3D геометрическая топология (например, пересечение) в Python - PullRequest
4 голосов
/ 18 февраля 2012

Я использую 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

Итак, geos не поддерживает топологические операции с 3D-данными ... Ну, должно быть, есть много библиотек, которые могут сделать это для меня правильно ??? Так что я погуглил и просто не могу найти ни одного !!! Так что, если у кого-то есть указатель, это было бы здорово ...

EDIT

Существует такой же вопрос, как и Пересечения трехмерных многоугольников в питоне , но это не дает удовлетворительного ответа (см. Комментарий).

1 Ответ

2 голосов
/ 18 февраля 2012

Я до сих пор не верю, что есть один «хороший выбор» библиотеки для этого на python, но в разработке находится много перспективных проектов, в первую очередь улучшенных cgal-bindings на Google Code.

Новые условия лицензирования CGAL начиная с версии 4 (GPL / LGPL) также делают некоторые части оригинального вопроса по этой теме устаревшими.

...