Студопедия

КАТЕГОРИИ:


Архитектура-(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. А на приведенном ниже рисунке показан результат выполнения данного сценария.


Глава 1




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


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


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



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




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