3D геометрическая топология (например, пересечение) в Python
Вопрос
Я использую GEO (в Python/Django) манипулировать некоторыми 3D -элементами. Все топологические операции отлично работают в 2D. Итак, я создал простой MultiPolygon
с трехмерными многоугольниками (на самом деле очень простые, это всего лишь коллекция вертикальных плоскостей) и 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-датами ... ну, должно быть много библиотек, которые могут сделать это для меня правильно ??? Так что я погуглил, и я просто не могу найти ни одного !!! Так что, если у кого -то есть указатель, это было бы здорово ...
РЕДАКТИРОВАТЬ
Есть аналогичный вопрос как Пересечения трехмерных многоугольников в питоне, но это не дает никакого удовлетворительного ответа (см. Комментарий).
Решение
Я до сих пор не верю, что в Python есть один «хороший выбор» библиотеки, но в работе в работе, в основном среди них, ряд многообещающих проектов, в первую очередь среди них CGAL-связывания на коде Google.
Новые условия лицензирования CGAL из версии 4 и дальнейшей (GPL/LGPL) также делают некоторые части оригинала вопрос на эту тему устаревшей.