Форум

* Как? Вращение объекта на угол не инкрементально, а от первоначального положения в сцене?

24 июля 2016 23:08
Может я не нашел в доке , но похоже нет готовой функции, как Вращение объекта на угол не инкрементально, а от первоначального положения в сцене?

Наприме это вроде как добавляет угол ( при чем угол не написано в радианах или в градусах)


https://www.blend4web.com/api_doc/module-transform.html#.rotate_z_local

"rotate_z_local(obj, angle)
Perform incremental rotation around Z axis in the local space. "

Спасибо
Денис
25 июля 2016 09:22
Добрый день!


Может я не нашел в доке , но похоже нет готовой функции, как Вращение объекта на угол не инкрементально, а от первоначального положения в сцене?
Вращения более сложные чем вращения в локальных системах координат можно производить с помощью семейства функций set_rotation:
https://www.blend4web.com/api_doc/module-transform.html#.set_rotation
манипулилируя кватернионами (например, домножив слева кватернион начального положения объекта на сцене на кватернион необходимого поворота относительно него).


при чем угол не написано в радианах или в градусах
Углы в радианах
Команда Blend4Web - разработчик
Twitter
LinkedIn
25 июля 2016 12:33
Ответ на сообщение пользователя Константин Хомяков
………..Вращения более сложные чем вращения в локальных системах координат………

а в чем вращение от начального положения сложнее чем инкрементальное?
просто добавьте еще одну функцию, например в том - же THREE это есть собственно и не зря
Денис
25 июля 2016 14:07
просто добавьте еще одну функцию, например в том - же THREE это есть собственно и не зря
Можно глянуть, что за функцию имеете в виду?
Команда Blend4Web - разработчик
Twitter
LinkedIn
25 июля 2016 14:34
Ответ на сообщение пользователя Константин Хомяков
Можно глянуть, что за функцию имеете в виду?

ага..
у меня же на THREE все было написано например так:

obj3d.rotation.z = angle;
Денис
25 июля 2016 18:49
ага..
у меня же на THREE все было написано например так:

obj3d.rotation.z = angle;

Такс… в threejs такой вызов просто задает один из углов эйлера для поворота объекта.
В нашем движке аналогом такого вызова будет:
set_rotation_euler(obj, old_angle_x, old_angle_y, new_angle_z)

Но наш API для поворотов заточен для работы с кватернионами, которые мы и рекомендуем использовать
Команда Blend4Web - разработчик
Twitter
LinkedIn
25 июля 2016 19:11
Ответ на сообщение пользователя Константин Хомяков
Такс… в threejs такой вызов просто задает один из углов эйлера для поворота объекта.
В нашем движке аналогом такого вызова будет:
set_rotation_euler(obj, old_angle_x, old_angle_y, new_angle_z)

Но наш API для поворотов заточен для работы с кватернионами, которые мы и рекомендуем использовать

спаисбо . попробую, как то пропустил эту фунцию в доке..
ДА , спаисбо еще раз. все врено .точно так заработало как на ТРИИ. странно, видать название меня смутило функции )
что я е то сразу не поюзал ))


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