Как рассчитать объемное пересечение двух сеток с помощью Trimesh?Python

Программы на Python
Ответить
Anonymous
 Как рассчитать объемное пересечение двух сеток с помощью Trimesh?

Сообщение Anonymous »

Я пытаюсь вычислить объем пересечения двух выпуклых сеток с помощью Trimesh. Используя метод tripesh.Trimesh.intersection(), даже базовые, явно перекрывающиеся фигуры возвращаются с пустым пересечением.
В качестве простого примера я попробовал вычислить пересечение двух блоков, смещенных от друг друга.

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

# Create offset transformation matrix
T = np.eye(4)
T[:3, 3] = np.array([0.5, 0.5, 0.5])

# Form basic box meshes
mesh1 = trimesh.creation.box(extents=[1.0, 1.0, 1.0])
mesh2 = trimesh.creation.box(extents=[1.0, 1.0, 1.0], transform=T)

# Calculate intersection
test_intersection = mesh1.intersection(mesh2)

print(test_intersection)
print(test_intersection.volume)

# Visualize
scene = trimesh.Scene([mesh1, mesh2])
scene.show()
Результирующие выходные данные указывают на пустое пересечение между двумя фигурами: Однако при визуализации блоков видно, что они явно перекрываются:
блоки
Почему пересечение сетки пусто ? Я неправильно понимаю использование метода .intersection()?
(я использую Python 3.12.7, Trimesh 4.5.2 установлен из pip)

Подробнее здесь: https://stackoverflow.com/questions/791 ... ng-trimesh
Ответить

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

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

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

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

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