КАТЕГОРИИ: Архитектура-(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 состоит из ссылки на перемещаемый объект и величины этого перемещения в виде данных типа 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. Введите в окне приемника команд следующую строку кода: 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; Просмотров: 733; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |