3D геометрическая топология (например, пересечение) в Python

StackOverflow https://stackoverflow.com/questions/9339688

  •  27-10-2019
  •  | 
  •  

Вопрос

Я использую 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) также делают некоторые части оригинала вопрос на эту тему устаревшей.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top