Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Ограничения, присущие методу EulerAngles




Свойство вращения

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

euAngle = eulerAngles 30 45 60

rotate b euAng

можно заменить выражениями, в которых свойство вращения устанавливается непосредственно:

b.rotation.x_rotation = 30

b.rotation.y_rotation = 45

b.rotation.z_rotation = 60

При таком способе установки свойства вращения угол поворота ограничивается величиной 360°.

Для проверки ограничения угла поворота величиной 360° выполните следующее упражнение.

1. Установите 3dsMax в исходное состояние.

2. Создайте стандартный параллелепипед, введя в приемнике команд

сле­дующую строку кода: b = box()

3. Переместите ползунок временной шкалы к кадру 10, включите режим Auto Key (Автоматическая расстановка ключевых кадров), а затем введите следующую строку кода: b.rotation.z_rotation = 720

4. Выключите режим Auto Key и воспроизведите анимацию. Объект не вращается.


Глава 5

5. Переместите ползунок временной шкалы к кадру 10, включите режим Auto Key, а затем введите следующую строку кода:

b.rotation.z_rotation = 450

6. Выключите режим Auto Key и воспроизведите анимацию.

Объект повернется только на 90°, поскольку полный его оборот на 360° игнорируется (450 - 360 = 90).

Выполнение эйлерова вращения вызывает особые трудности как внутри 3dsMax, так и в MAXScript. Эти трудности связаны с тем, что при вращении объекта вокруг одной оси соответствующие изменения происходят относительно остальных осей. Данный факт иллюстрирует следующее упражнение.

1. Установите 3dsMax в исходное состояние.

2. Откройте окно приемника команд MAXScript Listener.

3. Создайте в окне вида сверху плоский и длинный параллелепипед, введя следующую строку кода:

b1 = box length:100 width:75 height:25

4. Создайте копию параллелепипеда: b2 = copy b1

5. Переместите вновь созданную копию параллелепипеда в сторону от оригинала:

b2.pos.x = 100

 

 

 


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

6. Выберите команду Graph Editors ⇨ Track View - Dope Sheet (Редакторы графических представлений ⇨ Вид трека - Подготовительная таблица) из главного меню 3dsMax. Разверните иерархию треков в окне Track View вплоть до треков анимации вращения объекта Box01.


Преобразования и анимация

В итоге должны быть видны треки X Rotation, Y Rotation и Z
Rotation. В данный момент значения углов вращения данного объекта вокруг всех трех осей равны нулю.

7. Выберите локальную систему опорных координат, введя в приемнике команд следующую строку кода: set coordsys local

8. Введите в приемнике команд следующую строку кода:
b1.rotation = eulerAngles 45 0 0

 

 

 

 


Параллелепипед повернется на 45° вокруг оси X мировых координат.

Соответствующее значение на треке XRotation в окне Track View

изменится до -45.

Далее вам предстоит повернуть параллелепипед вокруг его оси Y.

9. Введите в приемнике команд следующую строку кода:
b1.rotation = eulerAngles 0 45 0

 

 


10. Казалось бы, в результате этого вращения соответствующее значение на треке YRotation должно было бы измениться до 45, однако вместо этого значения на треках X Rotation, Y Rotation и Z Rotation стали равны около - 54, 74, -30,0 и 35, 26 соответственно.


Глава 5




Поделиться с друзьями:


Дата добавления: 2014-10-15; Просмотров: 462; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.006 сек.