Конвертировать многогранники и полигоны в воксели в Python - PullRequest
1 голос
/ 03 февраля 2012

Для моего исследования мне нужно превратить как 3D-многоугольники (грани), так и 3D-многогранники (объемы) в воксели (равноотстоящие кубы), чтобы схема решателя разностей в конечных разностях PDE могла работать с геометрией. У меня уже есть рабочая установка в python, но в настоящее время она очень медленная и нестабильная:

1) Чтобы преобразовать многоугольник в воксели, я наложил сетку на многоугольник и назначил каждую точку сетки вокселю. Чтобы предотвратить «дыры», я должен резко увеличить разрешение сетки при увеличении разрешения вокселей.

2) Чтобы преобразовать (выпуклый) многогранник в воксели, я пробегаю отсек сетки, в котором он находится, и пробую sage.all.Polyhedron.contains ( как sagemath ) для всех точек сетки. Эта процедура довольно медленная и имеет недостатки с

AttributeError: 'Polyhedron' object has no attribute '_Vrepresentation'

ошибка, из-за которой случайно невозможно построить многогранник для некоторых списков ребер.

Я ищу какой-нибудь питонический способ

1) правильно воксировать многоугольники, проверяя пересечение многоугольника с гранями вокселя

2) иметь быструю и надежную процедуру многогранника.contains ().

Пока единственное, что я нашел, это привязки CGAL: Пример пересечения фасета многогранника . У кого-нибудь есть опыт работы с ними?

...