Объем трехмерного автомобильного объекта с закрытыми ячейками - PullRequest
5 голосов
/ 11 сентября 2009

У меня есть трехмерный автомобильный объект с замкнутой сеткой, имеющий поверхность, составленную треугольники. Я хочу рассчитать его объем, центр объема и тензор инерции.

Не могли бы вы помочь мне

С уважением. George

Ответы [ 7 ]

6 голосов
/ 14 декабря 2009

Для объема ...

Для каждого треугольного фасета ищите его угловые точки. Позвоните им P, Q, R.
Вычислите это количество (я называю это «частичным объемом»)

pv =  PxQyRz + PyQzRx + PzQxRy - PxQzRy - PyQxRz - PzQyRx

Сложите их для всех аспектов и разделите на 6.

Внимание! P, Q, R для каждой грани должны быть расположены по часовой стрелке, если смотреть снаружи. (Или все против часовой стрелки, если оно согласовано для всех аспектов.)

Если сетка имеет какие-либо четырехугольники, просто временно галлюцинируйте диагональ, соединяющую одну пару противоположных углов. Это превращает его в два треугольника.

Практическое усовершенствование вычислений: перед выполнением математических операций с P, Q и R вычтите координаты некоторой "центральной" точки C. Это может быть центр масс, средняя точка между min / max x, y и z или любая удобная точка внутри или рядом с сеткой. Это помогает минимизировать ошибки усечения для более точных томов.

2 голосов
/ 11 мая 2011

Вот демонстрация и код для вычисления объема меша:

http://www.gamedev.net/page/resources/_/reference/programming/sweet-snippets/area-and-volume-calculations-r2247

1 голос
/ 11 сентября 2009

С цифровой точки зрения, то, что вы пытаетесь достичь, довольно просто и может быть сведено к вычислению нескольких квадратур. Википедия предоставит необходимую информацию о математике за ней.

Если вы ищете нестандартное вычисление объема, взгляните на эту запись . По инерции - формы недостаточно, так как вам также нужно распределение массы.

0 голосов
/ 05 февраля 2010
0 голосов
/ 11 сентября 2009

Вот статья и пример кода алгоритма, выполняющего эти задачи.

0 голосов
/ 11 сентября 2009

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

Я не уверен, что это поможет вам в этом случае. Иметь симуляцию жидкости в фоновом режиме и погружать меш в нее звучит немного неестественно. Хотя, я думаю, что это работает, и поэтому квалифицируется как (немного бесполезный, тем не менее) ответ. ; ^)

0 голосов
/ 11 сентября 2009

Ну, здесь не так много информации об автомобиле - вы должны быть в состоянии разбить автомобиль на более простые формы - чем больше степень приближения вам требуется - тем более простые формы вы можете разбить. (Это может быть сложно, если автомобиль каким-то образом генерируется динамически и каждый раз совершенно отличается ... но я не вижу в этой ситуации никакого смысла).

Это должно помочь найти инерционный тензор различных более простых форм: http://www.gamedev.net/community/forums/topic.asp?topic_id=57001, нахождение объемов и подобных вещей, таких как сферы и кубы, является довольно распространенным знанием, поэтому я не буду связывать это.

...