logo

3.2.7. Анимация перемещения

В Arena есть два способа анимации: 1) анимация соединений (Connector animation). Ранее мы использовали именно этот способ, причём в результате мы наблюдали объекты, находящиеся в очередях и «проскакивающие» между блоками. Движение объектов между блоками не давало нам представления о реальном характере их перемещения внутри системы; 2) анимация перемещений (Facility-based animation). В этом способе необходимо задавать дополнительно параметры перемещения объектов между определёнными пунктами, называемыми станциями (Station). На примере упрощённой модели пивного киоска мы рассмотрим сейчас этот способ анимации и представления моделей. Назовём нашу модель BeerAndKvass2.

Чтобы создать модель и анимировать её новым способом, надо в строку инструментов добавить панель анимации перемещений (Animate Transfer Toolbar), если там её ещё нет. Для этого надо навести курсор мыши на свободную область строки инструментов, и сделать щелчок правой клавишей мыши. В развернувшемся списке надо пометить опцию Animate Transfer Toolbar. Далее, надо в окно проекта добавить вкладку Advanced Transfer (Улучшенное перемещение). Для этого надо навести курсор мыши на свободную область окна проекта, и сделать щелчок правой клавишей мыши. В появившемся окне надо выбрать надстройку Advanced Transfer и подключить её к Arena. В результате в окне проекта раскроется новая вкладка с блоками двух разных цветов, а в строке инструментов появится новая панель .

Теперь в новом окне можно начинать построение модели. С целью упрощения ограничимся моделью пивного киоска, продающего только пиво одного сорта. Вначале построим общую схему движения объёктов. На панели Animate Transfer Toolbar нажмём кнопку – Station (Станция). При этом откроется диалоговое окно, в котором мы укажем имя станции – Enter (Вход) и пометим опцию Route (Маршрут) (ОК). После того как диалоговое окно закроется, разместим появившийся маркер в свободной области окна модели и нажатием левой кнопки мыши создадим значок станции. Повторим эти действия ещё два раза, создав станции с именами Getting Beer и Departure (уход). Затем создадим в свободной области окна модели 4 отдельных субмодели с именами Enter, Getting Beer, Beer Checking и Exit (рис. 3.75). Наведя курсор на любую субмодель и сделав щелчок правой клавишей мыши, выберем в появившемся меню команду Properties (Свойства). В появившейся вкладке установим в графах Number of entry points (Число входных точек) и Number of exit points (Число выходных точек) значения 0. Повторим эту операцию для всех субмоделей. Таким образом мы установим, что в субмоделях нет точек входа и выхода.

Рис. 3.75. Модель пополнения запасов, выполненная на основе блоков из набора Advanced Transfer

Наполним содержанием субмодель Enter, как это представлено на рис. 3.76. Здесь блоки Customer Arrival и Beer Ordering полностью аналогичны соответствующим блокам уже рассмотренной нами ранее модели пивного киоска. Кроме того, при построении субмодели использованы новые блоки Station и Route вкладки Advanced Transfer. Образцы задания параметров этих блоков вы видите на рис. 3.77 и 3.78. Отметим, что данная субмодель привязана к станции Enter общей схемы движения. В графе Route Time диалогового окна Route задаётся время движения к станции, имя которой указано в графе Station Name (в данном случае – это Getting Beer), а в графе Units – единицы измерения времени.

Рис. 3.76. Субмодель Enter

Рис.3.77. Заполнение блока Customer Arrival

Рис. 3.78. Заполнение блока Beer Ordering

Далее обратимся к субмодели Getting Beer, структура которой представлена на рис. 3.79.

Рис. 3.79. Субмодель Getting Beer

Эта структура также во многом повторяет структуру ранее рассмотренной субмодели Getting Beer. Блоки Beer Checking, Start Beer Pouring, Beer Pouring, Beer Level Change и End Beer Pouring являются полностью заимствованными из предыдущей модели. К ним добавлены блок типа Station с названием Station 2 и блоки типа Route с названиями Go to Check Beer (Проверить уровень пива) и Go to Exit (Идти к выходу). Образец установки параметров блока Station 2 представлен на рис. 3.80. Как следует из этого рисунка, действия, предписываемые субмоделью Getting Beer, разворачиваются в рамках одноимённой станции на общей схеме. Станции назначения, указанные в блоках Go to Exit и Go to Check Beer соответственно Departure и Beer Checking. Время движения до последней станции установим равным нулю, а до станции Departure – 50 минут (можно предположить, что после покупки пива люди будут двигаться медленнее, чем по пути к киоску).

Рис. 3.80. Диалоговое окно блока Station 2

Рассмотрим теперь структуру субмодели Beer Checking (рис. 3.81). Она в основном повторяет структуру нижней ветви предыдущей модели. Содержание одноимённых блоков также осталось без изменения. Добавлены блок Dispose 2 и блок Station 4 типа Station, в котором в графе Station Name указано Beer Checking. Станции с таким названием нет в общей схеме движения, поэтому движение объёктов к ней не будет анимироваться. Другой особенностью субмодели Beer Checking является отсутствие блоков Route. Объекты отсюда не выходят, а уничтожаются в блоке Dispose 2.

Рис. 3.81. Субмодель Beer Checking

П

Рис. 3.82. Субмодель Exit

оследней в нашем рассмотрении является субмодель Exit, структура которой приведена на рис. 3.82. Здесь мы видим блок типа Station с названием Go Exit и блок Dispose 1, назначение которого должно быть понятным без комментариев. В блоке Go Exit в качестве станции указана станция Departure. На этом создание модели можно считать завершённым.

Настройки команды Setup (Установка) вкладки Run (Счёт) зададим такими же, как в предыдущей модели. Теперь, после запуска модели на счёт, мы будем наблюдать движение объектов от станции к станции, причём число изображений объектов на различных участках пути примерно пропорционально времени прохождения этих участков, установленному в блоках Route (рис. 3.83). Наконец, отметим ещё возможность скрывать или отображать различные элементы в окне модели. Для её осуществления в меню View надо выбрать команду Layers. В открывающемся диалоговом окне (рис. 3.84) можно выбрать группы отображаемых объектов.

Рис. 3.83. Пример анимации перемещения

Рис. 3.84. Окно Layers

Yandex.RTB R-A-252273-3
Yandex.RTB R-A-252273-4