Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Вращение matrix3d по мировым координатам (http://www.flasher.ru/forum/showthread.php?t=137253)

gen4 09.03.2010 11:30

Вращение matrix3d по мировым координатам
 
Затык с 3д-матрицей.

Пытаюсь вращать 3д матрицу через appendRotation и, как и написано в хелпе, вращение происходит относительно осей объекта.
Мне же нужно вращать относительно мировых осей.
Тот же хелп говорит использовать recompose() - но примеров его использования в таком контексте нет, а как с ним работать я так и не смог понять.


Кто нибудь подскажет?

gloomyBrain 09.03.2010 13:23

Есть 2 способа:
1) В самом-самом начале, когда объект только создан, его оси совпадают с мировыми.
Если хотите повернуть объект относительно мировых осей - поверните его обратно относительно его собственных (верните в начальное состояние), а потом поворачивайте на нужный угол.
2)AppendRotation = "добавить вращение"
Чтобы заменить вращение нужно переписать матрицу объекта. Один из способов - задать вектора сдвига, вращения и масштаба (метод recompose)

Цитата:

но примеров его использования в таком контексте нет, а как с ним работать я так и не смог понять
В другом контексте их не может быть в принципе. Что именно Вам не понятно?

gen4 09.03.2010 15:18

Похоже, мы говорим о разном.
Я не имею ввиду центр вращения, если я вас правильно понял.

В моем случае, если я сначала повернул конус по горизонтальной оси (Х) на 45', затем начинаю поворачивать по вертикальной (Y) - так вот, сейчас вертикальная ось уже сместилась на 45' и вращение конуса будет таким же, как и до смещения - основание будет вращаться вокруг центра окружности.

Нужно же, что бы после смещения по Х, при повороте по Y, центр основания конуса описывал окружность с ненулевым радиусом.

Словом, сейчас при вращении по одной из осей, другие поворачиваются вместе с объектом - мне этого нужно избежать.


Часовой пояс GMT +4, время: 10:03.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.