Студопедия

КАТЕГОРИИ:


Архитектура-(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)

Преобразование масштабированием




Преобразование изменением положения

Свойства преобразований изменением положения и масштабированием

Введение

В этой главе вы научитесь эффективно пользоваться преобразованиями при написании сценариев. Объекты обычно требуется преобразовывать на основании пользовательского ввода, а для их анимации устанавливаются ключевые кадры.

Кроме того, в этой главе вы научитесь устанавливать и применять контроллеры для специальной настройки анимации.

Для всех геометрических объектов, независимо от их типа, имеются следующие свойства положения и масштаба:.pos

.position - то же, что и.pos.scale

В этой главе сначала рассматриваются преобразования изменением положения и масштабированием, поскольку они выполняются сходным образом. А у преобра­зования вращением имеются ограничения, которые приходится принимать во внимание при выполнении вращения по сценарию.

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

• Непосредственно с помощью свойства.pos или.position

• Косвенно с помощью метода move

В главе 1 вы научились устанавливать положение любого объекта непосредственно с помощью свойства.pos или.position:


Глава 5

s = sphere()

s.pos = [150, 10, 0]

s.pos.x = 200

А с помощью метода move это делается следующим образом:
move s [10.0, 10.0, 10.0]

Перечень аргументов метода move состоит из ссылки на перемещаемый объект и величины этого перемещения в виде данных типа Point3. Следует, однако, иметь в виду, что метод move перемещает объект не в точку с координатами [x, y, z], а на величину [x, y, z]. Следовательно, если применить данный метод несколько раз, объект будет непрерывно перемещаться на указанную величину.

Значение свойства положения задается явно и не увеличивается всякий раз.

Для того чтобы воспользоваться свойством pos и методом move, выполните следующее упражнение.

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

2. Введите в приемнике команд следующую строку кода:

s = sphere()

3. Введите следующий ряд строк кода:

s.pos.x = 25

s.pos.x = 25

s.pos.x = 25

При выполнении данной строки кода три раза подряд сфера устанавливается в точке с координатой x = 25.

4. Введите следующий ряд строк кода и нажмите клавишу <Enter> после каждой из них:

move s [25,0,0]

move s [25,0,0]

move s [25,0,0]

5. В итоге сфера переместится на 75 единиц по оси X.

Свойство масштаба (scale) определяет сжатие или растяжение объекта вдоль указанной оси. По умолчанию значение составляющих X, Y и Z свойства масштаба равно 1,0, что соответствует масштабу 100% объекта по каждой из осей координат. Если установить значение одной из составляющих свойства масштаба равным 2,0, исходный масштаб объекта увеличится вдвое, а если установить ее значение равным 0, 5, то исходный масштаб объекта сократится наполовину.

Масштаб объекта можно изменить по всем трем координатам следующим образом: s.scale = [2.0, 1.0, 0.5]

Аналогично положению, масштаб указывается в виде данных типа Point3. В приведенном выше примере объект растягивается в два раза вдоль оси X, не изме­няет свой размер вдоль оси Y и сокращается вдоль оси Z. Если же объект требуется растянуть только вдоль оси X, для этого достаточно ввести следующую строку кода: s.scale.x = 2.0


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

Для пропорционального масштабирования объекта достаточно умножить свойство масштаба на требуемую величину:

s.scale = 3.0*s.scale

-- или

s.scale * = 3.0

Приведенный выше фрагмент кода означает следующее: "Установить новое значение свойства масштаба, которое в 3 раза больше его текущего значения". При этом объект масштабируется по всем трем осям.

Аналогично свойству pos и методу move для свойства масштаба имеется соответствующий метод scale. Данный метод реализуется следующим образом:

b = box()

scale b [1.0, 2.0, 3.0]

В этом фрагменте кода параллелепипед масштабируется на разную величину в направлении каждой из осей координат. Свойство.scale и метод scale действуют таким же образом, как и свойство.position и метод move, а именно: значение свойства задается явно в виде данных типа Point3, а метод изменяет это значение с указанным приращением.

Для масштабирования объекта выполните следующее упражнение.

1. Введите в окне приемника команд следующую строку кода:
b = box()

2. Для того чтобы установить свойство масштаба, введите и вычислите следующую строку кода: b.scale = [2, 2, 2]

В качестве результата в приемнике команд возвращается значение [2,2,2] данного свойства.

3. Для того чтобы вновь установить масштаб, введите следующую строку кода: b.scale = [2, 2, 2]

В приемнике команд по-прежнему возвращается значение [2,2,2].

4. Примените метод scale, введя следующую строку кода: scaleb [2, 2, 2]

В приемнике команд возвращается значение [4,4,4].




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


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


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



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




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