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

Литералы имен объектов

Читайте также:
  1. Анализ входной информации предметной области и выделение информационных объектов
  2. Анализ случайных процессов изменения ОП объектов
  3. Априорные и апостериорные вероятности классов объектов
  4. Бухгалтерский учет строительства объектов основных средств
  5. В нем допускается использование смеси из объектов и простых типов (например, числа, символы и др.),
  6. Введение. Что такое Контейнер объектов и зачем он нужен
  7. Вероятностная постановка задачи обучения распознаванию двух классов объектов посредством выбора разделяющей гиперплоскости

Поскольку MAXScript предназначен для работы с объектами, составляющими сцену, логично иметь возможность работы с именами этих объектов и, соответственно, иметь литералы, обозначающие имена объектов. Для этого записывается имя объекта, то самое, которое появляется в списке при выборе объекта в 3ds max, а к нему слева приписывается знак $. Например

$box01

Поскольку объекты часто объединяются в иерархии, для их обозначения применяются такие литералы

$man/torso/hand

то есть данным литералом поименован объект hand, который является дочерним по отношению к объекту torso, который в свою очередь происходит от объекта man.

С помощью литералов имен объектов можно выбрать и целую группу объектов с похожими именами. Для этого используются символы * и?. Например литерал

$box*

обозначает все объекты, имена которых начинаются с box. При этом звездочку можно ставить не только в конце, но и в любом месте литерала и даже в нескольких местах. Например, такая строка

$*box*

именует все объекты, в имени которых сочетание букв box находится в любом месте имени. Очень удобно использовать символ * при работе с иерархиями объектов. Например, литерал

$man/*

выберет всех прямых потомков объекта man.

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

$man/…/*

или, что то же самое

$man…*

При этом если надо найти всех потомков, чьи имена начинаются, например, на букву h, то можно написать

$man…h*

Разница между символами * и? следующая. Если символ * заменяет любую группу символов, то? любой одиночный символ. Представим себе сцену, в которой содержатся три объекта: box1, box2 и box16. В этом случае скрипт

hide box*

скроет все объекты сцены, а

hide box?

только box1 и box2.

кроме того, существует и один специальный литерал - $. Он означает все выбранные объекты сцены. Например

hide $

скроет все выбранные в данный момент объекты. Однако эту возможность следует использовать с осторожностью, так как в случае, если в сцене нет выбранных объектов, такой скрипт выдаст ошибку. Для работы с выделенными объектами лучше использовать переменную selection. Например

hide selection

выполнит ту же самую работу аккуратнее.

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

$’Snow man’

При этом в число символов, защищаемых кавычками, не входят * и?. Поэтому если Вы хотите именовать объекты, в имени которых содержатся эти символы, используйте обратный слеш. Например, имя объекта konjak*** запишется так

$’konjak\*\*\*’

Символ пробела, защищаемый кавычками, может быть заменен символом подчеркивания “_”. Например, приведенные ниже литералы обозначают имя одного и того же объекта

$’Snow Man’

$Snow_Man

 

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

Точка с двумя координатами записывается примерно так

[ 2.8, 4.2 ]

а с тремя аналогично

[ 3.1, 5.0, 6.24 ]

Естественно, что сначала записывается координата x, затем y, а потом, если есть z. В качестве координат необязательно должны быть числа, могут быть и выражения

[ x, y * 2 + 4.5, z / 3.14 ]

 


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


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

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