В AnyLogic вся структура агента задается на одной графической диаграмме. Это позволяет видеть в одном окне запущенной модели все элементы ее структуры, а также анимацию, элементы сбора и визуализации данных и т.д. И таким образом пользователь имеет возможность в любой момент времени анализировать состояние всей модели в целом, имея перед глазами одно окно - окно модели. Но в случае сложных моделей, агенты которых содержат большое количество элементов, может возникнуть другое неудобство: все элементы агента могут просто физически не поместиться внутрь рамки модели, которая будет отображена в окне презентации во время выполнения модели.
AnyLogic предоставляет в распоряжение пользователей специальный элемент для решения этой проблемы - область просмотра. С помощью этого элемента вы можете выделить на диаграмме типа агента некоторые области, содержащие логически обособленные группы элементов или участки диаграммы. Задав такие области, вы сможете легко переключаться между ними во время выполнения модели с помощью специальных средств навигации, что позволит быстро переходить к тому или иному участку диаграммы агента. При этом в окне презентации запущенной модели будут отображаться те элементы агента, которые попали в заданную вами ранее и сделанную в текущий момент активной область просмотра.
С помощью области просмотра вы можете, например, разнести на диаграмме различные группы элементов в различные области. И при необходимости переключаться между ними в режиме выполнения модели:
Демо модель: View Area
Чтобы задать область просмотра
Имя – Имя области просмотра. Это имя будет использоваться для идентификации элемента и доступа к нему из кода
Отображать имя – Если опция выбрана, то имя области будет отображаться в графическом редакторе.
Исключить – Если опция выбрана, то область будет исключена из модели.
Заголовок – Здесь вы можете задать заголовок для области просмотра. Он будет обозначать эту область в списке областей, открываемом по нажатию кнопки панели инструментов Области просмотра в режиме редактирования модели и Показать область... в режиме запуска модели соответственно.
X – x-координата якоря области просмотра.
Y – y-координата якоря области просмотра.
Ширина – Ширина области просмотра (в пикселах).
Высота – Высота области просмотра (в пикселах).
Области просмотра используются как для навигации по графическому редактору во время создания модели, так и для навигации по окну презентации во время выполнения модели. Обратите внимание, что при переключении на область просмотра ее содержимое будет автоматически масштабировано таким образом, чтобы уместиться внутрь рамки модели. К примеру, если размер области просмотра меньше рамки модели, то при переключении на данную область просмотра масштаб содержимого области увеличится.
Чтобы перейти к другой области просмотра в режиме создания модели
Чтобы перейти к другой области просмотра в режиме выполнения модели
При желании вы можете также добавлять свои собственные элементы презентации, по щелчку на которых будет производиться переход к той или иной области просмотра. В этом случае вы должны будете написать следующий код в соответствующем поле (Действие в случае элемента управления и Действие по щелчку в случае фигуры презентации):
имяОбластиПросмотра.navigateTo();
Области просмотра могут использоваться не только для навигации по презентационной диаграмме одного типа агентов, но и для переключения между диаграммами разных агентов. Пусть у нас есть агент верхнего уровня Main, в который вложена популяция агентов people. Чтобы перейти с презентации агента верхнего уровня на область просмотраpersonAreaName агента номер 124, вы можете написать:
people(123).personAreaName.navigateTo();
и наоборот, чтобы перейти на уровень выше из вложенного агента на презентацию агента, в который он вложен (в нашем случае - тип агента Main), нужно написать:
main.mainAreaName.navigateTo();
Функция |
Описание |
void navigateTo() |
Осуществляет переход к области просмотра. |
Функция |
Описание |
double getX() |
Возвращает X-координату области просмотра. |
double getY() |
Возвращает Y-координату области просмотра. |
void setX(double x) |
Задает новую X-координату области просмотра. |
void setY(double y) |
Задает новую Y-координату области просмотра. |
Функция |
Описание |
double getHeight() |
Возвращает высоту области просмотра. |
double getWidth() |
Возвращает ширину области просмотра. |
void setHeight(double height) |
Задает высоту области просмотра.
Параметр: |
void setWidth(double width) |
Задает ширину области просмотра.
Параметр: |
Функция |
Описание |
String getTitle() |
Возвращает заголовок области просмотра (заголовок отображается в списках Области просмотра в режиме создания модели и Показать область... в режиме выполнения модели). |
void setTitle(String title) |
Задает заголовок области просмотра (заголовок отображается в списках
Области просмотра
в режиме создания модели и
Показать область... в режиме выполнения модели). |