Render.ru
Поддержать

Поворот объекта относительно произвольной точки

Рейтинг
31
Как скриптом повернуть объект относительно заданной точки на заданный угол?
Работа скрипта не должна зависеть от текущего состояния Макса (состояния Reference Coordinate System, Use Center Flyout и т.п.).
Точка поворота задана значением point3, угол задан значением eulerangles.

Savin Denis

Модератор форума
Команда форума
Рейтинг
138
Почитай главу "Applying Standard Transformations"
Рейтинг
31
2Savin Denis: Думаешь я не читал?...

Здесь ключевой момент: относительно заданной точки. Выражение типа rotate $ (eulerangles 0 0 30) поворачивает объект относительно его пивота, а мне нужно относительно заданной точки. Например, есть $Rectangle01 длиной 20 и шириной 80; $Rectangle01.pos (т.е. координаты пивота) равен [100,40,0]; нужно повернуть этот прямоугольник относительно его нижнего левого угла с координатами [60,30,0] на 30 градусов. Как это сделать скриптом? Вопрос принципиальный, поскольку я с поворотами в MaxScript много чего не догоняю. Хочется разобраться.

Savin Denis

Модератор форума
Команда форума
Рейтинг
138
Воспользуйся контекстом about
хотя мог и через Coordsys сделать.
Рейтинг
31
2Savin Denis:
Спасибо за ответ. На счет about вчера сам допер (случайно). А вот с coordsys у меня что-то не получилось. У меня такое впечатление, что coordsys подменяет систему координат на указанную, но привязывает ее к мировому нулю, т.е. начало заданной системы координат совпадает с началом мировой системы.

Savin Denis

Модератор форума
Команда форума
Рейтинг
138
Да извини глянул действительно по умолчанию берется локальный цент, без about не обойдется.