КАТЕГОРИИ: Архитектура-(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) |
Вывод массивов на печать
До версии 3dsMax 7 попытка вывести массив на печать или преобразовать его в строковый тип (т.е. выполнить так называемое приведение типов данных) приводила к тому, что распечатывались лишь 20 первых элементов массива. Теперь в MAXScript появилась новая глобальная переменная, позволяющая выводить все элементы массива на печать или выполнять приведение их типов. Эта глобальная переменная следующая: options.PrintAllElements Если установлено логическое значение true данной переменной, все элементы массива выводятся на печать или преобразуются в строку (более подробно типы данных и их приведение рассматриваются в оперативном руководстве по MAXScript). Если же установлено логическое значение false данной переменной, то на печать выводятся только 20 первых элементов массива. Примечание. Дополнительные сведения о синтаксисе переменной PrintAllElements приведены в руководстве по MAXScript. Для того чтобы воспользоваться переменной PrintAllElements, выполните следующее упражнение. 1. Введите в окне приемника команд следующий фрагмент кода: options.PrintAllElements = false h = for i = 1 to 30 collect i 2. Обратите внимание на то, что на печать выведены лишь 20 первых элементов массива: #(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,...) 3. Введите в окне приемника команд следующий фрагмент кода: options.PrintAllElements = true h 4. Как видите, теперь на печать выведены все элементы массива: #(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30) Глава 1 Многомерные массивы (дополнительный материал) Многомерным называется такой массив, каждый элемент которого содержит другой массив, т.е. это массив массивов. Такой массив бывает не только двухмерным; он может иметь размерность более высокого порядка. Двухмерный массив выглядит следующим образом: #(#(1,2),#(3,4)) Его можно присвоить любой переменной следующим образом: h = #(#(1,2),#(3,4)) В следующем упражнении вам предстоит создать двухмерный массив. 1. Установите 3dsMax в исходное состояние. 2. Откройте окно редактора MAXScript Editor по команде MAXScript ⇨ NewScript из меню данного окна. Введите в окне редактора MAXScript Editor следующий фрагмент кода и выполните его, нажав комбинацию клавиш <Ctrl+E>: function array2D row column = ( local data = #() for i = 1 to column do ( data [i] = #(0) for j = 1 to row do ( data[i][j] = random 1 10 ) ) return data ) myArray = array2D 2 4 -- row - строка -- column - столбец 3. В ответ в окне приемника команд появится новый двухмерный массив, заполненный произвольными числами в пределах от 1 до 10: array2D() #(#(10, 1), #(10, 9), #(4, 5), #(9, 4)) В следующем упражнении вам предстоит определить массив, содержащий всю информацию, необходимую для создания объекта, а затем организовать двухмерный массив из подобных массивов. 1. Введите в редакторе MAXScript Editor все операторы сценария так. как они показаны в этом упражнении. Сценарий будет выполнен в конце данного упражнения. 2. Создайте два массива в новом окне редактора MAXScript Editor: это будут массивы описания цилиндров: cylobj1 = #() cylobj2 = #() 3. Создайте ряд модификаторов для последующего применения: tap = taper amount:-1.0 bnd = bend angle:3 Основы MAXScript 4. Заполните элементы обоих массивов описанием свойств цилиндрических объектов. Первый элемент каждого массива должен содержать высоту цилиндра, второй — его положение по оси X, третий — наименование цилиндра и четвертый — применяемый к цилиндру модификатор: cylobj1[1] = 30.0 cylobj1[2] = 0.0 cylobj1[3] = "first cylinder" cylobj1[4] = tap cylobj2[1] = 60.0 cylobj2[2] = 40.0 cylobj2[3] = "second cylinder" cylobj2[4] = bnd 5. Создайте массив из массивов описания цилиндров: cylinders = #(cylobj1, cylobj2) Для доступа к элементу двухмерного массива cylinders используется выражение cylinders[i][j], где первый индекс массива [i] обозначает конкретный массив описания цилиндров, а второй индекс [j] служит для индексации этого массива. 6. Постройте два цилиндра: for i = 1 to cylinders.count do ( c = cylinder height: cylinders[i][1]\ pos:[cylinders[i][2], 0.0, 0.0]\ name: cylinders[i][3]\ heightsegs: 10 addmodifier c cylinders[i][4] ) Версию этого сценария можно найти в файле \chapter1\2_D_Arrays.ms на прилагаемом к этой книге CD-ROM. А на приведенном ниже рисунке показан результат выполнения данного сценария.
Дата добавления: 2014-10-15; Просмотров: 1115; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |