Пересечения трехмерных полигонов в питоне - PullRequest
3 голосов
/ 31 марта 2010

Существуют ли какие-либо инструменты или библиотеки с открытым исходным кодом (в идеале на python), которые доступны для выполнения множества пересечений с трехмерной геометрией, считываемой из шейп-файла ESRI? Большинство тестов будут простыми отрезками и полигонами.

Я изучил OGR 1.7.1 / GEOS 3.2.0, и, хотя он загружает данные правильно, результирующие пересечения не верны, и большинство других доступных инструментов, похоже, основаны на этой работе.

Хотя CGAL был бы альтернативой, его лицензия не подходит. Универсальная библиотека геометрии Boost выглядит фантастически, но API огромен и, похоже, не поддерживает встроенные программы чтения wkt или wkb.

1 Ответ

4 голосов
/ 11 января 2011

Немного опоздал с ответом, но моя программа трассировки оптических лучей python pvtrace делает именно это. Это будет работать так:

1) Определите полигон со списком точек и создайте объект Polygon

points = [[0,0,0],[0,0.1,0],[0.1,0.1,-0.03],[0.1,0,-0.03]]
polygon = Polygon(points)

2) Получить точку (и) пересечения с объектом Луч

ray = Ray(position=(0,0,0), direction=(0,0,1))
print polygon.intersection(ray)
...