Quest3D - Русскоязычное сообщество

Quest3D => Программирование => Тема начата: →|๖ۣۜDen|← от 07 Апреля 2013, 19:36:16



Название: Подсчёт объёма 3д-модели
Отправлено: →|๖ۣۜDen|← от 07 Апреля 2013, 19:36:16
Задача - посчитать объём любой 3д-модели. В идеале было бы конечно считать объём именно видимой части модели, но, похоже второму без первого не бывать.
Задача конечно не из простых, но всё же, занимался ли кто-нибудь подобным?


Название: Re: Подсчёт объёма 3д-модели
Отправлено: Egor от 14 Апреля 2013, 02:19:05
Если в максе, то задача не сложная, ну а если в q3d...


Название: Re: Подсчёт объёма 3д-модели
Отправлено: →|๖ۣۜDen|← от 21 Апреля 2013, 13:14:51
Чтож, оказалось всё гораздо сложнее и универсального решения, по всей вероятности, добиться довольно затратное дело, но, всё же примерная стратегия для расчёта объёма следующая:

Прежде всего нам необходимо определить какая у нас модель: выпуклая или вогнутая.

Если выпуклая, то всё просто, и объём находится как сумма всех объёмов тетраэдров, в основании которых находятся треугольники модели, образующие тремя вершинами однозначную плоскость, и вершиной в некоторой произвольной точке внутри модели.

Если вогнутая, то модель необходимо сначала разбивать на части (convex (http://compgeom.com/~piyush/papers/occluder.pdf)/non-convex (http://pdf.aminer.org/000/352/748/detection_between_nonconvex_polyhedral_models.pdf)). Для статических моделей можно написать плагин под макс или майку.

Имея выпуклую модель, найти объём каждой пирамиды не составит труда. Необходимо будет только знать координаты 4-ёх вершин, которые при смешанном произведении векторов (http://ru.wikipedia.org/wiki/Смешанное_произведение) образуют объём параллелепипеда, полученный на основе координат трёх векторов. Для того, чтобы найти искомый объём нашего тетраэдра полученную величину следует разделить на +/- 6. Это и будет объём одной пирамиды.
Перебрав все вершины нашей модели получим объём всей модели.


Название: Re: Подсчёт объёма 3д-модели
Отправлено: Corpic от 24 Апреля 2013, 21:26:32
А если сечь плоскостью, определить площадь в плоскости сечения, затем проинтегрировать?


Название: Re: Подсчёт объёма 3д-модели
Отправлено: Sqwer от 04 Мая 2013, 18:32:51
Корпик верно говорит.

Для использования 3Д принтеров используют схожий алгоритм.
В сети есть множество опенсорсных проектов 3Д принтерев.