#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.
Комментариев нет:
Отправить комментарий