Re[3]: Алгоритм определения координаты точки в mesh
От: ylem  
Дата: 13.10.19 09:07
Оценка:
DD>Да, вазы разные бывают, и даже в виде пивного бокала. Вариант с наливанием жидкости сложен, во первых для него времени нужно много, да и нужно будет проводить предварительную обработку точек для физического движка.

Движек и имулирование настоящего наливание не нужены. Нужно просто оценить объем. Для этого хватит построить "призмы" из фейсов вдоль предполагаемой оси. Строить до плоскости горлышка или до пересечения с плоскотью вазы.
Если у ваших ваз нет дырок в боку, то горлышко можно искать сверху. Если есть -- снизу.

UPD: походу, строить призмы и пускать лучи не нужно. Должно сработать опускать/поднимать горизонтальную (для текущего проверямого направления оси) плоскость, пока на ней есть замкнутая линия (внутренняя поверхность, в моем детстве была "ваза", где их будет несколько) внутри другой замкнутой линии (внешняя поверхность). Пупутно по этим срезам посчитать объем.
Если нормали гарантированно направлены наружу (не в материал вазы), можно обойтись и без двух линий.

https://i0.wp.com/meowlogy.com/wp-content/uploads/2017/04/Terrarium-Decoration-Ideas-17.jpg?w=570&ssl=1
Если бывают и такие "вазы", то для них, видимо, придется усложнять перебор направлений. Типа, учитывать устойчивое и неутойчивое равновесие.

Если у вас есть библиотека (надеюсь, что есть) которая умеет 1. построить выпуклую оболочку и 2. генерализовать поверхность (лучше пошагово), можно попробовать найти плоскости верха и низа. Но даже в этом случае придется научиться оценивать, где низ, а где верх: представье неглубокую пиалу с очень впуклым внурь дном.
И это, очевидно, не сработает с вазой, к которой есть плоские грани.


А еще, на всякий, стоит выяснить, точно ли ваши вазы -- сосуды. Если нет то все надо делать как-то совсем подругому, и тут идея с "самокомпенсирующимися" нормалями уже не кажется тупиком
http://ideas.vdolevke.ru/i/photos/full/jn755zU83XP3Z6j0T4OH.jpg
Отредактировано 13.10.2019 11:41 ylem . Предыдущая версия . Еще …
Отредактировано 13.10.2019 10:06 ylem . Предыдущая версия .
Отредактировано 13.10.2019 10:03 ylem . Предыдущая версия .
Отредактировано 13.10.2019 9:37 ylem . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.