Окно поведения активного объекта
Поведение мяча представлено в окне Ball.statechart, содержащем простейший стейтчарт (карту состояний), который можно считать расширенным графом переходов конечного автомата.
Стейтчарт модели прыгающего мяча (рис. 6) состоит из одного состояния с именем Movement и одного перехода. Переход срабатывает при наступлении события касания поверхности земли при движении мяча вниз. Условие наступления этого события можно записать выражением:
Режим выполнения модели
В режиме выполнения модели пользователь имеет возможность выполнять различные эксперименты с моделью. Рассмотрим здесь простейшие средства управления экспериментом.
Автоматическое обновление окна анимации
Автоматическая отрисовка изображения производится каждый раз, как только произошло событие в активном окне. При отсутствии этого режима отрисовка изображения анимации производится с некоторым шагом по времени. Чем чаще отрисовывается изображение, тем медленнее работает программа моделирования. Переключение между режимами осуществляется кнопкой переключения режимов обновления (см.рис. 10).
Доработка модели
Выполним некоторые упражнения с моделью Balls, которые дадут некоторое представление о средствах разработки моделей в AnyLogic.
Введение второго мяча в модель
Введите в модель второй мяч. Для этого сделайте активным окно структурной диаграммы Root и перенесите в него еще один экземпляр мяча, щелкнув левой кнопкой мыши сначала по имени Ball в окне проекта, а потом в окне структурной диаграммы Root. Появившийся объект автоматически получит имя bain (рис. 14). При этом справа откроется окно свойств выделенного объекта (нового экземпляра мяча), в котором установлены те значения параметров мяча, которые были определены для активного объекта Ball.
Рис. 11. Введение новой переменной в активный объект Ball
Рис. 12. Запоминание времени в момент отскока
Установите начальные значения х0 и у0координат х и у нового мяча равными 200 и 300 (рис. 15).
Рис. 13. Запоминание времени в момент отскока
Чтобы движение нового мяча отобразить в анимации, в окне анимации продублируйте изображение мяча. Для чего нажмите левой кнопкой мыши на изображении мяча и при нажатой клавише <Ctr!> перенесите это изображение в другое место поля анимации. Для нового изображения круга в правой части окна редактора появится окно свойств, в котором динамические значения параметров (координат и цвета) связаны с характеристиками шара ball.
Их нужно связать с новым объектом -- шаром с именем Ball1. Иными словами, вместо ball.x, ball.у и ball.tBounce в соответствующих полях нужно поставить ball1.x, ball1.у и ball1.tBounce (рис 15). Точно также на вкладке Овал этого окна для значения радиусов Радиус 1 и Радиус 2 нужно установить Ball1.rвместо ball.r.
Запустите модель. В модели теперь будут имитироваться независимые движения двух шаров.
У <= r && vy < 0
следует дополнить: