Форум 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=171230)

ageent 12.11.2011 02:36

Работа с matrix3D
 
Привет всем.

Есть объект к которому применяется класс Matrix3D. C помощью функции appendRotation создается вращение объекта:

Код AS3:

spSphere.transform.matrix3D.appendRotation(param1, Vector3D.X_AXIS);
spSphere.transform.matrix3D.appendRotation(param2, Vector3D.Y_AXIS);
spSphere.transform.matrix3D.appendRotation(param3, Vector3D.Z_AXIS);

Каким способом можно установить границы вращения объекта? спасибо

crazyone 12.11.2011 14:22

Что такое "границы вращения объекта"?

ageent 12.11.2011 14:52

Под границей подразумевается определенный угол поворота объекта. кажись так.

strangedk 12.11.2011 15:16

Ээээ....

Код AS3:

const X_LIMIT:int = 90;
 
if (X_AXIS < X_LIMIT)
    spSphere.transform.matrix3D.appendRotation(param1, Vector3D.X_AXIS);


crazyone 12.11.2011 15:30

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

Для более удобной работы с поворотом в пространстве используют кватернионы.

Для каждого из вариантов вместо Matrix3D.appendRotation стоит использовать комбинацию из Matrix3D.decompose() и Matrix3D.recompose(), указав в параметрах методов константу класса Orientation3D.

ageent 12.11.2011 18:29

ясно. спасибо за помощь


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

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