AnyLogic
Развернуть
Размер шрифта

3D Объект

Используя элемент 3D Объект, вы можете импортировать в ваши модели трехмерные модели объектов, созданные в сторонних пакетах для работы с трехмерной графикой.

Элемент 3D объект поддерживает 3D модели формата Collada (.dae).

Чтобы добавить 3D объект на презентацию

  1. Перетащите элемент 3D Объект из секции 3D палитры Презентация на диаграмму типа агента. Также вы можете перетаскивать файлы 3D объектов из других приложений прямо на графическую диаграмму AnyLogic. Вы увидите значок фигуры трехмерного объекта в соответствующем месте диаграммы.
  2. AnyLogic предложит автоматически изменить размер объекта соответственно масштабу агента. В большинстве случаев рекомендуется подтвердить это действие. Вы можете задать автоматическое изменение масштабов объекта (или отключить его) в Настройках AnyLogic.
  3. Теперь вам нужно будет указать, какой именно объект должен отображаться с помощью этой фигуры. Перейдите в панель Свойства и выберите файл с изображением трехмерного объекта, который вы хотите отображать с помощью данной фигуры. Для этого воспользуйтесь расположенной здесь кнопкой Выбрать.... По щелчку на ней откроется диалоговое окно Открыть. Выберите нужный вам файл и щелкните по кнопке Открыть. После выбора соответствующий файл появится в папке Ресурсы, расположенной в панели Проекты. Таким образом вы сможете отслеживать текущее состояние этого файла, менять тип пути к файлу и совершать другие операции.
  4. Вы увидите изображение добавленного объекта в графическом редакторе. Вы можете изменить размер объекта, выбрав его в графическом редакторе, с помощью метки-манипулятора, расположенной в нижнем правом углу объекта. Также это можно выполнить с помощью элемента управления Доп. масштабирование в панели Свойства объекта.
  5. У 3D объекта могут быть встроенные источники света. Их настройки доступны в секции свойств объекта Специфические (параметры Встроенные источники света и Игнорировать внешние источники света).
Вы увидите вид сверху на добавленный вами трехмерный объект. Во время работы модели это двумерное изображение будет отображаться на холсте окна модели, в то время как в окне трехмерной анимации будет отображаться полноценное трехмерное изображение объекта.
Основные свойства

Имя — Имя объекта. Это имя будет использоваться для идентификации объекта и доступа к нему из кода.

Исключить — Если опция выбрана, то объект будет исключен из модели.

Отображается на верхнем агенте — Если опция выбрана, то объект будет виден на презентации типа агента, в который будет вложен данный агент.

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

Видимость — Здесь указывается, будет ли фигура отображаться на анимации во время исполнения модели. Выберите да или нет, используя элемент управления. Если вам нужно, чтобы видимость динамически изменялась или зависела от каких-либо условий, вы можете указать здесь выражение, задающее видимость фигуры. Это выражение будет динамически вычисляться во время исполнения модели. Оно должно возвращать логическое (булевское) значение. Фигура отображается в том случае, когда указанное выражение возвращает истинное значение, в противном случае фигура не видна.

Файл — Имя файла, хранящего изображение трехмерного объекта. Чтобы выбрать тот или другой файл, воспользуйтесь кнопкой Выбрать..., расположенной справа от этого поля. С помощью кнопки вы можете переключаться между абсолютным и относительным путями к файлу.

Автоматически изменять масштаб для соответствия масштабу клиента — Если опция выбрана, размер объекта будет автоматически изменен для соответствия масштабу агента. Если после этого вы измените масштаб агента, размер объекта изменится соответственно. В Настройках AnyLogic можно задать автоматическое изменение размеров добавляемых на графическую диаграмму 3D объектов.

Доп. масштабирование — Здесь можно изменить размер 3D объекта с учетом того, что исходный размер принят за 100%. Дополнительное масштабирование будет применено, даже если выбрана опция Автоматически изменять масштаб для соответствия масштабу клиента. Также можно изменить размер объекта в графическом редакторе с помощью метки-манипулятора, расположенной в нижнем правом углу объекта. Если вам нужно задать дробное значение, то необходимо переключить поле Доп. масштабирование в режим задания динамического выражения. При этом результат заданного выражения будет вычисляться только во время запуска модели, т.е. изменение не будет мгновенно отображено в графическом редакторе.

Ориентация — Здесь вы можете задать ориентацию 3D объекта в пространстве - какая его грань будет играть роль верхней грани, какая будет повернута к зрителю и т.д.

Цвета

Здесь вы можете изменить цвета 3D объекта.

Расположение

Уровень — уровень, на котором находится этот 3D объект.

X — X-координата 3D объекта.

Y — Y-координата 3D объекта.

Z — Z-координата 3D объекта.

Поворот Z — Угол поворота 3D объекта в плоскости XY (в градусах или радианах).

Специфические

Отображать в — Если выбрано В 2D и в 3D или Только в 3D, то будет создан трехмерный аналог двумерной фигуры. Тогда в режиме запуска модели двумерная фигура будет отображаться там же, где она и была нарисована в графическом редакторе, а трехмерная будет видна в специальном элементе, предназначенном для просмотра трехмерной анимации - 3D окне.

Количество — Здесь указывается, какое количество экземпляров данной фигуры будет создано (целочисленное значение). Если вы оставите это поле пустым, будет создана только одна такая фигура.

Отображать имя — Если опция выбрана, то имя объекта будет отображаться в графическом редакторе.

Встроенные источники света — Здесь вы можете задать способ обработки встроенных источников света данного объекта в ходе выполнения модели:

Выкл. — встроенные источники света отключены
Освещают сам объект — освещают только сам объект
Светят и наружу тоже — освещают не только сам объект, но и моделируемое пространство (например, фары автомобиля освещают стену)

Игнорировать внешние источники света — Если опция выбрана, то любые внешние источники света не будут освещать данный 3D объект.

Все добавленные в модель файлы 3D объектов копируются в каталог модели. Таким образом, вы можете легко копировать или сохранять модель в другое место - файлы будут копироваться вместе с моделью.

Функции

Местоположение
Функция Описание
double getX() Возвращает X-координату объекта.
double getY() Возвращает Y-координату объекта.
double getZ() Возвращает Z-координату объекта (относительно уровня размещения этого объекта).
void setX(double x) Задает X-координату объекта.

x — новое значение X-координаты.
void setY(double y) Задает Y-координату объекта.

y — новое значение Y-координаты.
void setZ(double z) Задает Z-координату объекта.

z — новое значение Z-координаты.
void setPos(double x, double y) Задает новые координаты объекта.

x — новое значение x-координаты.
y — новое значение y-координаты.
void setPos(double x, double y, double z) Задает новые координаты объекта.

x — новое значение x-координаты.
y — новое значение y-координаты.
z — новое значение z-координаты.
void setPos(Point p) Задает новые координаты объекта.

p — the Point object containing coordinates.
Масштаб
Функция Описание
double getAgentScalingFactor() Возвращает дополнительный фактор масштабирования, применяемый к элементу агента Масштаб.
double getScaleX()
double getScaleY()
double getScaleZ()
Возвращает масштаб фигуры по оси координат X (Y, Z).
void setScaleX(double sx)
void setScaleY(double sy)
void setScaleZ(double sz)
Задает масштаб фигуры по оси координат X (Y, Z).

sx — новое значение масштаба по оси X *
sy — новое значение масштаба по оси Y *
sz — новое значение масштаба по оси Z *
void setScale(double sx, double sy) Задает масштаб фигуры по обеим осям.

sx — новое значение масштаба по оси X *
sy — новое значение масштаба по оси Y *
void setScale(double sx, double sy, double sz) Задает масштаб фигуры по трем осям.

sx — новое значение масштаба по оси X *
sy — новое значение масштаба по оси Y *
sz — новое значение масштаба по оси Z *
void setScale(double s) Задает идентичный масштаб фигуре по обеим осям.
s — новое значение масштаба по двум осям *
* Значение масштаба считается относительно исходного размера 3D-объекта. Исходный размер соответствует значению 1.
Имя файла
Функция Описание
String getFilename() Возвращает имя файла 3D-объекта.
Цвета
Функция Описание
void setColor(String materialName, Color color) Задает нестандартный цвет для материала фигуры, носящего заданное имя.
В текущей версии цвет изменяется только в 3D-представлении и не отображается в 2D.
materialName — имя материала. Пожалуйста, предварительно посмотрите имена материалов, доступных в AnyLogic, на панели свойств.
color — новый цвет. Задайте null, чтобы вернуть цвет по умолчанию.
Поворот
Функция Описание
double getRotation() Возвращает текущий угол поворота фигуры по часовой стрелке в радианах.
void setRotation(double r) Задает новый угол поворота фигуры.

r — новое значение угла поворота в радианах.
Видимость
Функция Описание
boolean isVisible() Проверяет, отображается ли фигура на анимации во время выполнения модели. Если функция возвращает true, то фигура отображается, если false — нет.
void setVisible(boolean v) Задает видимость фигуры.

v — видимость: задайте true, чтобы объект был виден, или false, чтобы сделать его невидимым.
Уровень
Функция Описание
Level getLevel() Возвращает уровень, на котором размещен объект.
Группа
Функция Описание
ShapeGroup getGroup() Возвращает группу, содержащую этот объект.
Режим отображения (2D / 3D)
Функция Описание
ShapeDrawMode getDrawMode() Возвращает режим отображения, который определяет, в каком представлении виден этот объект: 2D, 3D или 2D+3D-анимации.

Допустимые значения:
SHAPE_DRAW_2D3D — показывать в 2D и 3D
SHAPE_DRAW_2D — показывать только в 2D
SHAPE_DRAW_3D — показывать в 2D и 3D
void setDrawMode(ShapeDrawMode drawMode) Задает режим отображения, который определяет, в каком представлении виден этот объект: 2D, 3D или 2D+3D-анимации.
Эту функцию следует вызывать только один раз — и только для тех объектов, которые создавались с помощью конструктора без аргументов. Вызов функции с попыткой изменить режим отображения приведет к появлению ошибки.
drawMode — новый режим отображения.
Допустимые значения:
SHAPE_DRAW_2D3D — показывать в 2D и 3D
SHAPE_DRAW_2D — показывать только в 2D
SHAPE_DRAW_3D — показывать в 2D и 3D
Точки внутри объекта
Функция Описание
boolean contains(double px, double py) Проверяет, находится ли внутри объекта точка с заданными координатами (относительно контейнера данного объекта, то есть в системе с теми же координатами x и y).
Возвращает true, если внутри объекта есть такая точка.

px — x-координата относительно контейнера объекта.
py — y-координата относительно контейнера объекта.
Point randomPointInside() Возвращает случайно выбранную точку внутри объекта.
Функция использует генератор случайных чисел объекта Presentable, содержащего данную фигуру. При создании фигуры из кода при вызове функции появится ошибка, если фигура не была добавлена к какой-либо группе — в этом случае используйте функцию randomPointInside(Random rng).
Point randomPointInside(java.util.Random rng) Возвращает случайно выбранную точку внутри объекта, используя заданный генератор случайных чисел.

rng — генератор случайных чисел.
Как мы можем улучшить эту статью?