![]() |
Почему rotationX == rotationZ
Вложений: 1
Совсем запутался. Или я что-то недопонимаю, или недоработки движка (99% что первое).
Есть плоскость _plane:Plane (которая содержит в себе ещё одну Plane). Oна помещается в контейнер _container: DisplayObject3D; Контейнер на сцену _scene:Scene3D; С _plane делаю маленькие манипуляции: _plane.rotationX = 90; _plane.rotationY = 90; _plane.y = size / 2; Затем в обработчике ENTER_FRAME пытаюсь вращать в разных плоскостях, но почему то _plane.rotationX--; и _plane.rotationZ++; дают один и тот же результат один в один. То есть я могу получить вращение в двух плоскостях, а в третьей, которой мне надо - не могу. Вот тут можно глянуть SWF: http://dump.byem.ru/pv3d/rotationX.swf http://dump.byem.ru/pv3d/rotationZ.swf Код вместе с papervision библиотекой прикладываю, может кто посмотрит. Наверное нарисовав по другому плоскость, или по другому изначально повернув - можно добиться желаемого результата, но почему rotationX и rotationZ дают одинаковые результаты? оО |
Извиняюсь, что не в тот раздел запостил.
Проблему решил изменением свойств localRotationZ а не просто rotationZ. Но почему получается такая ситуация в приведённом примере - всё равно не пойму. |
Потому что глобальные оси (углы ж вроде эйлеровы) Z и X склеились в результате твоих двух поворотов на 90 градусов.
|
Zebestov, ну значит как я и думал в самом начале, это какие-то особенности движка.
Другое дело, что я не представляю, что такое эйлеровы углы. Полезу гуглить. Спасибо за подсказку. |
| Часовой пояс GMT +4, время: 13:58. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.