Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 12.11.2011, 02:36
ageent вне форума Посмотреть профиль Отправить личное сообщение для ageent Найти все сообщения от ageent
  № 1  
Ответить с цитированием
ageent

Регистрация: Jan 2010
Сообщений: 44
По умолчанию Работа с 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);
Каким способом можно установить границы вращения объекта? спасибо

Старый 12.11.2011, 14:22
crazyone вне форума Посмотреть профиль Отправить личное сообщение для crazyone Найти все сообщения от crazyone
  № 2  
Ответить с цитированием
crazyone
 
Аватар для crazyone

блогер
Регистрация: Nov 2007
Адрес: Киев
Сообщений: 557
Записей в блоге: 2
Что такое "границы вращения объекта"?

Старый 12.11.2011, 14:52
ageent вне форума Посмотреть профиль Отправить личное сообщение для ageent Найти все сообщения от ageent
  № 3  
Ответить с цитированием
ageent

Регистрация: Jan 2010
Сообщений: 44
Под границей подразумевается определенный угол поворота объекта. кажись так.

Старый 12.11.2011, 15:16
strangedk вне форума Посмотреть профиль Отправить личное сообщение для strangedk Найти все сообщения от strangedk
  № 4  
Ответить с цитированием
strangedk
 
Аватар для strangedk

Регистрация: Oct 2010
Адрес: Харьков
Сообщений: 616
Записей в блоге: 1
Отправить сообщение для strangedk с помощью ICQ Отправить сообщение для strangedk с помощью Skype™
Ээээ....

Код AS3:
const X_LIMIT:int = 90;
 
if (X_AXIS < X_LIMIT)
    spSphere.transform.matrix3D.appendRotation(param1, Vector3D.X_AXIS);
__________________
adobe AS3 manual

Старый 12.11.2011, 15:30
crazyone вне форума Посмотреть профиль Отправить личное сообщение для crazyone Найти все сообщения от crazyone
  № 5  
Ответить с цитированием
crazyone
 
Аватар для crazyone

блогер
Регистрация: Nov 2007
Адрес: Киев
Сообщений: 557
Записей в блоге: 2
Дело в том, что поворот в трехмерном пространстве нельзя задать одним углом поворота.
Нужно использовать, как минимум, три угла, тогда это будет задание поворота при помощи углов Эйлера. Но для ограничения вращения это может не подойти, т.к. ограничения можно задать только для вращения в определенных плоскостях.

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

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

Старый 12.11.2011, 18:29
ageent вне форума Посмотреть профиль Отправить личное сообщение для ageent Найти все сообщения от ageent
  № 6  
Ответить с цитированием
ageent

Регистрация: Jan 2010
Сообщений: 44
ясно. спасибо за помощь

Создать новую тему Ответ Часовой пояс GMT +4, время: 05:06.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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