Площадь поперечного сечения 3D-геометрии с Alpha ShapePython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Площадь поперечного сечения 3D-геометрии с Alpha Shape

Сообщение Anonymous »

Я хочу получить площадь поперечного сечения геометрии (импортированной в виде файла STL) для заданной группы секущих плоскостей. На рисунках представлены некоторые полученные точки (это 2D точки). Обратите внимание, что внутри геометрии есть ветви и «пузыри». Я пытался вычислить площадь с помощью альфа-формы, но не могу определить альфу, которую можно было бы использовать на всех секущих плоскостях или которая могла бы правильно определить границу фигур. Я также пробовал AlphaOptimize, но безуспешно. На рисунках альфа = 0,3.
Рис. 1
Рис. 2
Рис. 3
Я обнаружил, что этот подход используется в этом вопросе, но, если возможно, я бы хотел избежать добавления дополнительных точек путем создания объемной сетки.
Вот как я рассчитываю площадь каждой секущей плоскости:

Код: Выделить всё

import numpy as np
from shapely.geometry import Polygon, MultiPolygon
import alphashape

def CPlane_area(points):
area = 0
alpha_shape = alphashape.alphashape(points, alpha=0.3)
if isinstance(alpha_shape, Polygon):
area = alpha_shape.area
elif isinstance(alpha_shape, MultiPolygon):
for polygon in alpha_shape.geoms:
area += polygon.area
return area
При использовании AlphaOptimize я получаю ошибку типа, хотя точки массива представляют собой массив numpy (я думаю, что shapely совместим с numpy, но я могу ошибаться, или я' я реализую что-то не так).

Подробнее здесь: https://stackoverflow.com/questions/790 ... lpha-shape
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»