Шаг 2. Создание анимации модели

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

Поскольку в нашем случае нас не интересует конкретное расположение объектов в пространстве, то мы можем просто добавить чисто схематическую анимацию интересующих нас объектов - в нашем случае мы хотим видеть на анимации банкомат и ведущую к нему очередь клиентов.

Анимация модели рисуется в той же диаграмме (в графическом редакторе), в которой задается и диаграмма моделируемого процесса.

Нарисуйте круг, который будет обозначать на анимации банкомат

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

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


  1. Давайте сделаем так, что цвет этого кружка будет меняться в зависимости от того, обслуживает ли банкомат в данный момент времени клиента или нет. Для этого выделите нарисованную нами фигуру на диаграмме и перейдите на страницу Динамические панели свойств. Здесь Вы увидите список полей, в которых задаются значения динамических свойств фигуры.
    Если Вам нужно, чтобы по ходу моделирования то или иное свойство фигуры меняло свое значение в зависимости от каких-то условий, то Вы можете ввести в поле соответствующего динамического свойства выражение, которое будет постоянно вычисляться заново при выполнении модели, и возвращаемый результат этого вычисления будет присваиваться текущему значению этого свойства. Мы с Вами хотим, чтобы во время моделирования менялся цвет нашей фигуры - поэтому перейдите в поле Цвет заливки и введите там следующую строку: 
    delay.size() > 0 ? red : white

Здесь delay – это имя нашего объекта Delay. Функция size() возвращает число человек, обслуживаемых в данный момент времени. Если банкомат занят, то цвет кружка будет красным, в противном случае - зеленым. 

 Нарисуйте ломаную, которая будет обозначать на анимации очередь к банкомату

  1. Нарисуйте ломаную, как показано на рисунке ниже. Чтобы нарисовать ломаную, сделайте двойной щелчок мышью по элементу Ломаная  в палитре (при этом его значок должен поменяться на этот: ). Теперь Вы можете рисовать ломаную точка за точкой, последовательно щелкая мышью в тех точках диаграммы, куда Вы хотите поместить вершины ломаной. Чтобы завершить рисование, добавьте последнюю точку ломаной двойным щелчком мыши. 
     Очень важно, какую точку ломаной Вы создаете первой. Заявки будут располагаться вдоль нарисованной Вами ломаной в направлении от конечной к начальной. Поэтому начните рисование ломаной слева и поместите рядом с банкоматом конечную точку ломаной, которая будет соответствовать в этом случае началу очереди.


Теперь мы должны задать созданные анимационные объекты в качестве анимационных фигур блоков диаграммы нашего процесса.

Задайте ломаную в качестве фигуры анимации очереди

  1. На странице свойств объекта queue, введите polyline в поле Фигура анимации.


 Задайте круг в качестве фигуры анимации банкомата

  1. Введите в поле Фигура анимации имя нашего овала: oval.

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

Теперь Вы можете запустить модель и изучить ее поведение. Для ускорения работы модели, переключитесь в режим виртуального времени, щелкнув мышью по кнопке панели инструментов Реальное/виртуальное время. В режиме виртуального времени модель будет выполняться максимально быстро, без привязки модельного времени к реальному.

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

Анимация клиентов

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

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

 Создайте анимацию клиента

  1. Откройте палитру Картинки. Эта палитра содержит набор картинок, которые наиболее часто используются пользователями AnyLogic при создании моделей.
  1. Перетащите элемент Человек из палитры на диаграмму графического редактора: 


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

 Поместите картинку за границу видимой области презентации

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

Теперь нам нужно сообщить объекту source, чтобы он использовал добавленную нами фигурку в качестве фигуры анимации заявки (то есть, клиента банка).

 Измените свойства объекта source

  1. Выделите объект source в графическом редакторе.
  2. В полк Фигура анимации заявки введите имя нашей фигурки человека: person (при этом Вы можете воспользоваться помощником написания кода).


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

Эта простейшая модель продемонстрировала основные принципы работы с Основной библиотекой. Тепрь мы готовы к тому, чтобы усовершенствовать нашу модель.

Контрольная модель: Bank Office - Phase 2


          Шаг 1. Создание простой модели

          Шаг 3. Сбор статистики использования ресурсов