Для моего исследования мне нужно превратить как 3D-многоугольники (грани), так и 3D-многогранники (объемы) в воксели (равноотстоящие кубы), чтобы схема решателя разностей в конечных разностях PDE могла работать с геометрией. У меня уже есть рабочая установка в python, но в настоящее время она очень медленная и нестабильная:
1) Чтобы преобразовать многоугольник в воксели, я наложил сетку на многоугольник и назначил каждую точку сетки вокселю. Чтобы предотвратить «дыры», я должен резко увеличить разрешение сетки при увеличении разрешения вокселей.
2) Чтобы преобразовать (выпуклый) многогранник в воксели, я пробегаю отсек сетки, в котором он находится, и пробую sage.all.Polyhedron.contains ( как sagemath ) для всех точек сетки. Эта процедура довольно медленная и имеет недостатки с
AttributeError: 'Polyhedron' object has no attribute '_Vrepresentation'
ошибка, из-за которой случайно невозможно построить многогранник для некоторых списков ребер.
Я ищу какой-нибудь питонический способ
1) правильно воксировать многоугольники, проверяя пересечение многоугольника с гранями вокселя
2) иметь быструю и надежную процедуру многогранника.contains ().
Пока единственное, что я нашел, это привязки CGAL: Пример пересечения фасета многогранника . У кого-нибудь есть опыт работы с ними?