Изменим анимацию модели
Нарисуем очередь клиентов пользуясь инструментом Ломаная, ожидающих обслуживания. Назовем ее tellersQueue Поставим видимость кривой false Нарисуем комнату в которой располагаются стойки кассиров пользуясь инструментом Скругленный прямоугольник. Установим цвет прямоугольника на ваше усмотрение. Добавим на прямоугольник текстовую метку Teller lines. 2.2.2. Нарисуем Ломаную, чтобы указать на анимации места, в которых будут находиться банковские служащие. Точки ломаной линии будут соответствовать местоположению служащих на анимации. Назовем ломаную линию tellerLocations. Поставим видимость кривой false 2.2.3. Нарисуем кассиров внутри прямоугольника. С помощью разных изображений можно показать, обслуживает ли кассир в данный момент какого-нибудь клиента или нет. Щелкаем по кнопке Изображение и затем щелкаем по диаграмме. Изображение должно содержать рисунки работающего и отдыхающего кассира. Убедимся, что изображение названо image. Добавляем изображение отдыхающего кассира (файл Teller Idle.png) с помощью кнопки Добавить … на закладке Свойств Изображение Добавим изображение занятого кассира (файл Teller Buzy.png) Убедимся, что установлен флажок Исходный размер Убедимся, что индекс изображения не задан. Изображение может содержать несколько рисунков, показывая один из них в зависимости от значения заданного выражения. Если опция Исходный размер не будет выбрана, то размер изображения можно будет изменять. Выражение Индекс изображения определяет, какое изображение из списка отображать. Оставьте поле Индекс изображения пустым. 2.2.4. Создаем Группу фигур и добавим в нее созданное изображение. Щелкнем мышью по кнопке Группа фигур, а потом по диаграмме. Назовем группу фигур ShapeTeller Сделаем ее динамической установив флажок на значении Шаблон Динамические группы фигур создаются и добавляются на анимацию во время работы модели. Чтобы добавить фигуру в группу фигур, щелкаем правой кнопкой мыши по значку группы фигур и выберем Добавить / удалить фигуры из контекстного меню. Затем щелкаем мышью по изображению для того, чтобы добавить его к этой группе фигур. Чтобы выйти из режима добавления/удаления, щелкаем мышью по анимационной диаграмме. 2.2.5. Поместим на диаграмму столбцовый индикатор, показывающий то, какую часть своего рабочего времени кассир в среднем тратит на обслуживание клиентов. Задаем следующие свойства индикатора: Измерим занятость кассиров в строке Отображает введите tellers.getStatsUtilization().mean() Чтобы измерить занятость ресурса, воспользуемся функцией getStatsUtilization() объекта Resource. Затем мы получим среднее значение с помощью функции mean(). Задаем минимальные и максимальные отображаемые значения 0 и 1 2.2.6. Нам необходимо, чтобы введенные в модель картинки менялись в зависимости от занятости кассиров. Для этого мы создадим новый класс сообщения, которые будут представлять в нашей модели кассиров. Щелкаем мышью по кнопке Новый класс сообщения. Назовем класс Teller. Вводим имя базового класса для созданного сообщения Entity 2.2.7. Создаем динамическую анимацию группы фигур ShapeTeller. Напишем следующий код в поле Дополнительный код класса: Main._Group.ShapeTeller shape = ((Main)Engine.getRoot()).animation.new ShapeTeller(); Напишем следующий код в поле Код конструктора:
|