Страницы

Поиск по вопросам

вторник, 10 декабря 2019 г.

Как вычислить равномерное увеличение сложной 3D фигуры

#3d #геометрия #объекты #threejs #формулы


Добрый день, есть некий абстрактный 3D объект сложной геометрии.
Скажем его объем V₁ кубических метра. 

Задача расчитать величину (на иллюстрации выделена желтым) на которую надо сместить
каждую вершину объекта, чтобы в результате получился объект с новым объемом V₂.

Есть ли какая-нибудь формула для нахождения этой величины? 
В английском сегменте данная операция называется offset.


    


Ответы

Ответ 1



Disclaimer: с three.js не работал. Для каждой вершины новое положение: (kx, ky, kz). где k = кубический_корень_из(V2/V1) То есть координаты каждой вершины надо изменить на ((k - 1)x, (k - 1)y, (k - 1)z) А потом сдвиньте все координаты, чтобы, например, центры тяжести старой и новой фигуры совпадали, или описывающий параллелепипед равномерно расширился/сжался в направлениях координатных осей. Но это уже зависит от дополнительных условий задачи, не включенных в вопрос. Такое не должно пропасть. Сохраним для истории. Если для 2D такая же формула, но только с квадратным корнем, то она не работает. Если конечно правильно считал. Тот же прямоугольник 10x20. Площадь его 200 единиц. Хотим увеличить до 300. корень квадратный (300 / 200 ) = 1.224745... Если его применяем к сторонам, то у полученной фигуры площадь 279.5 Для 10х20 до 300, величина должна быть что-то около 1.51 А разве корень квадратный из 1.5 (300/200) не 1.224745? Остальное я не считал, а строил в Rhinoceros3D.

Комментариев нет:

Отправить комментарий