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

Изображение

Фигура изображение позволяет пользователям добавлять на презентацию изображения из файлов рисунков любого общепризнанного формата (.png, .jpg, .gif, .bmp и т.д.).

Изображения могут отображаться как в двумерной презентации, так и на сцене трехмерной анимации.

Вы можете добавлять изображения из буфера обмена с помощью стандартной команды Вставить. Вы также можете перетаскивать файлы изображений из других приложений прямо на графическую диаграмму AnyLogic. В таком случае AnyLogic автоматически добавит новую фигуру изображения, содержащую выбранное вами изображение, на графическую диаграмму. Файл изображения также автоматически появится в модельной папке Ресурсы, расположенной в панели Проекты. Таким образом вы сможете отслеживать текущее состояние этого файла, менять тип пути к файлу и т.д.

Чтобы добавить изображение на презентацию

  1. Перетащите элемент Изображение  из палитры Презентация в то место диаграммы, куда вы хотите поместить изображение.
  2. На диаграмме появится временный объект, занимающий место, где впоследствии будет находиться изображение. Мы называем его фигура изображения.

  3. Автоматически откроется диалоговое окно Открыть, в котором вы можете выбрать файл(ы) изображения, чтобы добавить их в модель.
  4. Либо перейдите в панель Свойства и выберите изображения, которые вы хотите отображать с помощью данной фигуры.
  5. Добавить изображение из файла можно с помощью расположенной здесь кнопки Добавить. По щелчку на ней откроется диалоговое окно Открыть. Выберите файл изображения, которое вы хотите добавить, выделите его и щелкните по кнопке Открыть.
  6. Вы увидите добавленное изображение в области предварительного просмотра. Аналогичным образом вы можете добавить и другие изображения (если вы хотите динамически переключаться между ними в режиме запуска модели).
  7. Если вы хотите увидеть также и трехмерную фигуру в 3D окне, перейдите в секцию Специфические панели Свойства и убедитесь, что выбрана опция Отображать в: 2D и 3D.
  8. В секции свойств Местоположение и размер вы можете изменить Z-координату плоскости с изображением в поле Z.

Файлы всех добавленных изображений копируются в каталог модели. Поэтому вам не нужно указывать где бы то ни было пути к этим файлам - при копировании модели они будут копироваться вместе с ней.

Свойства

Основные

Имя — Имя фигуры. Имя используется для идентификации и обращения к фигуре из кода.

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

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

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

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

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

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

Изображения — Здесь задаются изображения, содержащиеся в фигуре.
Добавьте изображение, используя кнопку Добавить.
Измените порядок изображений, используя стрелки.
Удалите выбранное изображение, используя кнопку в виде крестика.

Местоположение и размер

Уровень — Уровень, на котором находится этот элемент.

X — x-координата верхнего левого угла изображения.

Y — y-координата верхнего левого угла изображения.

Z — z-координата изображения.

Ширина — Ширина изображения (в пикселях).

Высота — Высота изображения (в пикселях).

Поворот — Угол поворота изображения в плоскости XY (в пикселях).

Масштаб по оси X — Здесь вы можете указать выражение, возвращающее коэффициент масштабирования фигуры по оси X.*

Масштаб по оси Y — Здесь вы можете указать выражение, возвращающее коэффициент масштабирования фигуры по оси Y.*

* Указав выражения для Масштаба по оси X и Масштаба по оси Y, вы сможете определять масштаб фигуры динамически во время выполнения модели.
Специфические

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

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

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

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

Локальные переменные:
self — сам элемент
clickx — x-координата щелчка относительно координат фигуры
clicky — y-координата щелчка относительно координат фигуры

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

Функции

Вы можете динамически изменять свойства фигуры во время работы модели с помощью функций класса элемента Изображение: ShapeImage.

Местоположение
Функция Описание
double getX()
double getY()
double getZ()
Возвращает x(y, z) координату фигуры (а именно, X координату ее верхнего левого угла).
void setX(double x)
void setY(double y)
void setZ(double z)
Задает новую x(y, z) координату фигуры.

x — новое значение координаты X
y — новое значение координаты Y
z — новое значение координаты Z
void setPos(double x, double y) Задает новые x, y координаты фигуры. Z-координата остается без изменений.

x — новое значение координаты X
y — новое значение координаты Y
void setPos(double x, double y, double z) Задает новые X, Y, Z координаты фигуры.

x — новое значение координаты X
y — новое значение координаты Y
z — новое значение координаты Z
Размер, масштаб
Функция Описание
void setSize (double width, double height) Задает высоту и ширину фигуры изображения.

width — новая ширина фигуры
height — новая высота фигуры
double getWidth() Возвращает ширину фигуры.
double getHeight() Возвращает высоту фигуры.
void setWidth(double width) Задает ширину фигуры равной width.
void setHeight(double height) Задает высоту фигуры равной height.
double getScaleX()
double getScaleY()
Возвращает масштаб фигуры по оси координат X (Y).
void setScaleX(double sx)
void setScaleY(double sy)
Задает масштаб фигуры по оси координат X (Y).

sx — новое значение масштаба по оси X *
sy — новое значение масштаба по оси Y *
* если параметр равен 1, то фигура сохраняет изначальный размер
void setScale(double sx, double sy) Устанавливает одинаковый масштаб по обеим осям координат, X и Y.

sx — новое значение масштаба по оси X *
sy — новое значение масштаба по оси Y *
* если параметр равен 1, то фигура сохраняет изначальный размер
void setScale(double s) Устанавливает одинаковый масштаб по обеим осям координат, X и Y.

s — новое значение масштаба по обеим осям координат *
* если параметр равен 1, то фигура сохраняет изначальный размер
Поворот
Функция Описание
double getRotation() Возвращает угол поворота фигуры в радианах, по часовой стрелке.
void setRotation(double r) Задает новый угол поворота фигуры.

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

v — видимость: если true, то фигура видна; если false, то не видна.
Изображения
Функция Описание
int getIndex() Возвращает порядковый номер (индекс) изображения, которое отображается в данный момент.
void setIndex(int index) Задает индекс изображения, которое нужно отобразить.

index — индекс изображения
String getImageFileName(int i) Возвращает имя файла изображения с заданным индексом.

i - индекс
ArrayList<string> getImageFileNames() Возвращает список имен файлов изображений в этой фигуре.
void add(String filename) Добавляет изображение в фигуру.

filename - имя файла изображения, которое добавляют
void remove(int i) Удаляет изображение с заданным индексом из фигуры.

i - индекс изображения
Режим отображения (2D / 3D)
Функция Описание
ShapeDrawMode getDrawMode() Возвращает режим отображения фигуры (где ее рисовать: в 2D, 3D или 2D+3D анимации).

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

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

rng — генератор случайных чисел.

Блокирование фигур

Иногда вам может понадобиться сделать так, чтобы нарисованная вами фигура не выделялась в графическом редакторе по щелчку мыши на ней, и у разработчика модели не было возможности переместить ее, изменить ее размер или еще как-то изменить свойства этой фигуры.

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

AnyLogic позволяет блокировать фигуры презентации и элементы разметки пространства. Заблокированные фигуры не будут реагировать на щелчки мыши — вы просто не сможете выбрать их в графическом редакторе до тех пор, пока вы не снимете с этих фигур блокировку. И если вы заблокируете в описанном выше примере фоновый рисунок, то редактирование анимации такой модели существенно упростится, потому что вы больше не сможете выделить этот рисунок ошибочным щелчком мыши.

Чтобы заблокировать фигуру

  1. Откройте контекстное меню щелчком правой кнопкой мыши по фигуре в графическом редакторе и выберите Блокировка > Блокировать фигуру.
    Или выделите эту фигуру в графическом редакторе (или в панели Проекты) и установите флажок Блокировать в панели свойств этой фигуры.

Чтобы снять блокировку с фигуры

  1. Выделите фигуру в панели Проекты и затем сбросьте флажок Блокировать в панели Свойства этой фигуры.
    Или выделите эту фигуру в панели Проекты щелчком мыши, затем откройте контекстное меню щелчком правой кнопкой мыши по фигуре в графическом редакторе и выберите Порядок > Снять блокировку с фигуры.

Чтобы снять блокировку со всех фигур

  1. Откройте контекстное меню щелчком правой кнопкой мыши в графическом редакторе и выберите Блокировка > Снять блокировку со всех фигур.
    Блокировка будет снята со всех ранее заблокированных фигур, находящихся на диаграмме, открытой в данный момент в графическом редакторе.
Как мы можем улучшить эту статью?