Область просмотра

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

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

Демо модель: View Area

Чтобы задать область просмотра

  1. Перетащите элемент Область просмотра из палитры Презентация в то место диаграммы, куда вы хотите ее поместить.
  2. Вы увидите на диаграмме значок якоря этой области просмотра и оранжевый прямоугольник. С помощью якоря обозначается левый верхний угол области просмотра, а прямоугольник задает участок диаграммы, который будет отображаться при переключении на область просмотра во время создания или выполнения модели:

  3. Размер области просмотра по умолчанию совпадает с размером рамки модели. Чтобы изменить размер области, выберите якорь этой области просмотра в графическом редакторе и перетащите мышью маркер, лежащий на той границе области, которую вы хотите передвинуть. Вы также можете указать размеры области просмотра в секции Местоположение и размер панели Свойства, введя новые значения размеров в полях Ширина и Высота.

Свойства

Основные

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

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

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

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

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

X – x-координата якоря области просмотра.

Y – y-координата якоря области просмотра.

Ширина – Ширина области просмотра (в пикселах).

Высота – Высота области просмотра (в пикселах).

Как переключаться между областями просмотра

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

Чтобы перейти к другой области просмотра в режиме создания модели

  1. Щелкните мышью в графическом редакторе, чтобы сделать его активным.
  2. Щелкните по кнопке панели инструментов Области просмотра и выберите из выпадающего списка, к какой именно области просмотра вы хотите перейти.

Чтобы перейти к другой области просмотра в режиме выполнения модели

Навигация между областями просмотра во время выполнения модели возможна только после того, как модель уже запущена. Если ранее вы отключили опцию автоматического выполнения модели Пропустить экран эксперимента и запустить модель в свойствах эксперимента Simulation, то нажмите кнопку Запустить и только после этого выполните шаги, описанные ниже.

  1. Откройте панель разработчика, щелкнув по иконке в правом нижнем углу окна презентации.
  2. В панели разработчика найдите секцию навигации по агенту и щелкните по выпадающему меню Выбрать область и показать.
  3. Выберите нужную вам область просмотра из выпадающего меню, и она появится в окне презентации.

Существуют две области просмотра, которые доступны только из панели разработчика в режиме выполнения модели.

Первая область просмотра доступна под именем [Origin]. Эта область есть у каждого агента в модели по умолчанию. Она соответствует той области презентации агента, которая ограничена рамкой.

Вторая область просмотра появляется, если на презентацию агента добавлено 3D окно и в Дополнительных свойствах этого окна выбрана опция Создать область просмотра в режиме запуска модели. По умолчанию, она доступна под именем [window3d], но если вы изменили имя 3D окна, то соответствующая область просмотра будет доступна из панели разработчика под этим новым именем в квадратных скобках.

Как переключаться между областями просмотра с помощью кода

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

имяОбластиПросмотра.navigateTo();

Чтобы обратиться к области просмотра [Origin], используйте следующий код:

_origin_VA.navigateTo();

Чтобы переключиться в область просмотра 3D окна, используйте _window3d_VA.navigateTo();

Если вы хотите автоматически переключаться в какую-либо область просмотра при запуске модели, то вам нужно разместить соответствующий код в поле действия При запуске агента Main. Например, чтобы автоматически показывать при запуске содержимое 3D окна view3d, расположенного на диаграмме агента Main, используйте следующий код в поле действия При запуске:

_view3d_VA.navigateTo();

Области просмотра могут использоваться не только для навигации по презентационной диаграмме одного типа агентов, но и для переключения между диаграммами разных агентов. Пусть у нас есть агент верхнего уровня Main, в который вложена популяция агентов people. Чтобы перейти с презентации агента верхнего уровня на область просмотра areaName агента номер 124, вы можете написать:

people(123).areaName.navigateTo();
где areaName - это имя той области просмотра агента Person, на которую вы хотите переключиться

и наоборот, чтобы перейти на уровень выше из вложенного агента на презентацию агента, в который он вложен (в нашем случае - тип агента Main), нужно написать:

main.areaName.navigateTo();
где areaName - это имя той области просмотра агента Main, на которую вы хотите переключиться

Функции

Переход к области просмотра

Функция

Описание

void navigateTo()

Осуществляет переход к области просмотра.


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

Функция

Описание

double getX()

Возвращает X-координату области просмотра.

double getY()

Возвращает Y-координату области просмотра.

void setX(double x)

Задает новую X-координату области просмотра.

Параметр:
x - значение новой X-координаты.

void setY(double y)

Задает новую Y-координату области просмотра.

Параметр:
y - значение новой Y-координаты.


Размер области просмотра

Функция

Описание

double getHeight()

Возвращает высоту области просмотра.

double getWidth()

Возвращает ширину области просмотра.

void setHeight(double height)

Задает высоту области просмотра.

Параметр:
height - значение высоты области просмотра.

void setWidth(double width)

Задает ширину области просмотра.

Параметр:
width - значение ширины области просмотра.


Заголовок области просмотра

Функция

Описание

String getTitle()

Возвращает заголовок области просмотра (заголовок отображается в списках Области просмотра в режиме создания модели и Показать область... в режиме выполнения модели).

void setTitle(String title)

Задает заголовок области просмотра (заголовок отображается в списках Области просмотра в режиме создания модели и Показать область... в режиме выполнения модели).

Параметр:
title - заголовок области просмотра.


См. также

Рамка

Редактирование фигур презентации

Справочник классов: Класс ViewArea