Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Интервал времени

Читайте также:
  1. A) средний прирост за единицу времени
  2. A) число погибших особей, появившихся за единицу времени
  3. Figure 6. Ежедневная оценка числа сотрудников в зависимости от времени обработки запросов и количества инцидентов
  4. Galileo project: карьерные траектории и миграции ученых Раннего Нового Времени.
  5. Quot;Круговая" или цикличная линия времени
  6. Therein в течение того или иного времени
  7. А что если у меня нет времени выполнить тренировку полностью?

Данный тип содержит два значения времени – начальное и конечное.

 

Литералы

Литералы для интервалов времени не предусмотрены

 

Конструкторы

Интервал задается обеими содержащимися в нем моментами

interval Время_1 Время_2

первое задает стартовое значение, второе – конечное.

 

Свойства

Можно получить стартовое значение интервала

Интервал. start

и конечное

Интервал. end

 

Операции

Для интервалов предусмотрены только две операции сравнения, равенство и неравенство.

Интервал_1 = = Интервал_2

Интервал_1! = Интервал_2

 

Методы

Для интервалов не предусмотрено методов.

 

Специальные значения

 

Undefined

Данное значение присваивается переменным, которые объявлены, но значение им не присвоено. Например, после такого скрипта

local Var

переменная Var будет иметь значение undefined. Это значение можно прямо присвоить переменной, например

Var = undefined

 

OK

Значение OK может применяться, например, для возврата признака успешного выполнения функции. Кроме того, это значение возвращают некоторые операторы MAXScript

 

Unsupplied

Это значение получают не указанные именованные параметры функции, если для них не определено значение по умолчанию. Например, при обращении к функции, определенной таким образом

fn MyFun x: = (print x)

параметр x получит значение unsupplied, если он не будет указан. Скрипт

MyFun ()

вернет именно это значение. Кроме того, это значение может быть присвоено любой переменной обычным образом.

Var = unsupplied

 

DontCollect

Это значение обычно применяется в цикле for … collect, для того чтобы не добавлять значение к результирующему массиву. Например, в результате работы такого скрипта

A = for i = 1 to 10 collect if i < 5 then dontCollect else i

в массиве A окажутся числа от пяти до десяти.

 

Битовая карта

Класс битовая карта или, другими словами, картинка, предоставляет удобный доступ к используемым 3ds max двумерным изображениям, в том числе и многокадровым. Битовые карты могут быть временными, размещенными в памяти, или объектами, ассоциированными с файлами. Ассоциированные с файлами карты имеют непустое свойство .filename. Карты могут быть предназначены либо только для чтения, либо только для записи, но не то и другое одновременно. Вы можете получить карту для чтения с помощью функций openBitmap или selectBitmap. Битовые карты для записи получаются с помощью конструктора bitmap() или как результат функций render, copy и getChannelAsMask. Чтобы иметь возможность сохранить полученную карту, необходимо задать имя файла при создании карты, или перед сохранением.

 

Конструкторы

Битовую карту можно создать с помощью конструктора

bitmap Целое_число_1 Целое_число_2 fileName: Символьная_строка

numFrames: Целое_число color: Цвет gamma: Вещественное_число

pixelAspect: Вещественное_число

Результатом такого конструктора будет битовая карта только для записи. Первые два параметра обязательны и представляют собой ширину и высоту карты в пикселях. Остальные параметры могут указываться в произвольном порядке или не указываться вообще.

Параметр filename задает имя файла, в который может быть записана полученная карта с помощью функции save. Если Вы задали имя существующего файла, то это не значит, что изображение оттуда будет загружено в созданную карту.

Параметр numFrames задает количество кадров при создании многокадровой битовой карты.

Параметр color задает цвет, который будут иметь все пиксели битовой карты после создания.

Параметр gamma устанавливает значение яркости для создаваемой битовой карты.

Параметр pixelAspect задает соотношение горизонтального и вертикального размера пикселя битовой карты. Имейте в виду, что после создания карты Вы не сможете установить новые значения для параметров gamma и pixelAspect. Можно обойти это правило, создав новую карту с нужными Вам значениями этих параметров, и скопировать в нее исходную.

Создать карту, ассоциированную с файлом можно с помощью функции

openBitmap Текстовая_строка

Текстовая строка должна задавать корректное имя файла, содержащего битовую карту. Если названного файла не существует, то генерируется ошибка. Полученная в результате карта предназначена только для чтения. Функция

selectBitmap caption: Текстовая_строка

делает то же самое другим способом. После ее вызова открывается диалог, заголовок которого задан необязательным параметром caption. Если пользователь закрыл диалог, не выбрав файла, то функция возвратит значение undefined. В противном случае результатом будет битовая карта только для чтения, созданная из выбранного файла.

Можно создать копию существующей карты с помощью функции

copy Битовая_карта

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

 

Свойства

Имя файла ассоциированного с картой может быть получено или установлено с помощью свойства

Битовая_карта. filename

которое представлено символьной строкой.

Свойство

Битовая_карта. palette

представляет собой палитру – массив из 256 цветов (на текущий момент 3ds max не позволяет работать с палитрами другой размерности). При работе с картами, имеющими палитру, надо соблюдать некоторую осторожность. Дело в том, что описанная ниже функция getIndexedPixels возвращает индексы, начиная с нуля, а массивы в MAXScript индексируются с единицы. В текущей версии 3ds max Вы не можете создать битовую карту, использующую палитру, но можете читать и записывать карты такого типа, хранящиеся в файле.

Прочитать или установить номер текущего кадра можно с помощью свойства

Битовая_карта. frame

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

Количество кадров хранится в свойстве

Битовая_карта. numframes

Высота и ширина битовой карты

Битовая_карта. height

Битовая_карта. width

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

Битовая_карта. gamma

и соотношение высоты и ширины пикселя

Битовая_карта. aspect

 

Методы

Функция

display Битовая_карта

открывает окно, в которое выводится виртуальный кадровый буфер (Virtual Frame Buffer или VFB). Изменение битовой карты не приводят к автоматическому обновлению информации в VFB. Для этого нужно еще раз вызвать функцию display. Автоматическое обновление информации в VFB происходит при изменении свойства .frame. Поскольку каждая битовая карта имеет свой VFB, обращение к функции display для нескольких карт приводит к открытию такого же количества окон. Закрыть открытое окно можно с помощью функции

undisplay Битовая_карта

Для сохранения битовой карты на диск предназначена функция

save Битовая_карта frame: Число

Второй параметр задает номер кадра. Перед сохранением полезно бывает убедиться, что свойство .filename задано корректно. Параметр frame действует по разному в зависимости от типа сохраняемого файла. При записи многокадрового файла (.avi или.mov) он попросту игнорируется. В этом случае в выходной файл записывается следующий кадр при каждом вызове функции save. Вы не сможете записывать данные в произвольно указанный кадр или перезаписывать уже записанный кадр. При сохранении последовательности кадров в файлы (такие как.bmp,.jpg,.tga) номер кадра добавляется к имени файла

Функция save может быть вызвана только для файлов, которые созданы для записи. Попытка сохранить карту только для чтения приведет к ошибке.

Функция

close Битовая_карта

закрывает файл, ассоциированный с битовой картой. Файл открывается после того, как Вы вызвали функцию save в первый раз. Если VFB для указанной карты открыт, то он закрывается. Кроме того, эта функция освобождает рабочие участки памяти, используемые для поддержки битовых карт. Если Вы генерируете и записываете много битовых карт, например при рендеринге, то вызов функции close весьма желателен.

Копирование одной битовой карты в другую осуществляется с помощью функции

copy Битовая_карта_1 Битовая_карта_2

Первая карта копируется во вторую. Если размеры исходной карты не равны размерам результирующей, то проводится масштабирование.

Номер текущего кадра устанавливается вызовом функции

gotoFrame Битовая_карта Целое_число

Указанное число задает номер текущего кадра. Данный метод может вызываться для карт, предназначенных только для чтения. Если VFB для указанной карты открыт, то он обновляется.

Для получения цвета пикселей карты используется функция

getPixels Битовая_карта Точка_в_2D_пространстве Число

Результатом вызова этой функции будет массив цветовых значений из строки битовой карты. Второй параметр задает точку карты, начиная с которой выдаются пиксели. При этом координата X точки задает номер колонки, а Y – строки. Начало координат расположено в левом верхнем углу карты и имеет координаты [ 0, 0 ]. Третий параметр задает количество пикселей. Следует отметить, что пиксели читаются только из одной строки, поэтому следует следить за тем, чтобы координаты начальной точки и количество пикселей были согласованы между собой.

Функция

setPixels Битовая_карта Точка_в_2D_пространстве Массив_цветов

производит обратную операцию – записывает в битовую карту цвета из указанного массива. При этом надо так же тщательно следить, чтобы количество элементов в указанном массиве не приводило к записи за границу битовой карты.

При работе с пикселями битовых карт, имеющих палитру, используются функции

getIndexedPixels Битовая_карта Точка_в_2D_пространстве Число

и

setIndexedPixels Битовая_карта Точка_в_2D_пространстве

Массив_чисел

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

 


Дата добавления: 2015-10-31; просмотров: 79 | Нарушение авторских прав


Читайте в этой же книге: Контекстные выражения | Каскадирование префиксов | Операторы цикла do и while | Создание функций, локальных внутри структуры | Символьные строки | Логические (Булевы) значения | Точка в трехмерном пространстве | Точка в двумерном пространстве | Произвольный поворот | Матрица произвольных размеров |
<== предыдущая страница | следующая страница ==>
Прямоугольник| Методы для работы с g-буфером

mybiblioteka.su - 2015-2024 год. (0.013 сек.)