AnyLogic
Развернуть
Размер шрифта

Скорость движения агента

Хотя AnyLogic напрямую поддерживает движение на постоянной скорости и нулевое ускорение, вы можете смоделировать ускорение/торможение, изменяя скорость в подходящие моменты времени. Вы можете использовать диаграмму состояний с таким состояниями как Статический, Медленный, Средний, Быстрый и т.д. и переходы по таймауту, чтобы управлять движением.

Чтобы задать начальную скорость агента

  1. Откройте панель Свойства типа агента, щелкнув по нему мышью в панели Проекты.
  2. Откройте секцию свойств Размеры и движение.
  3. Укажите начальную скорость агентов этого типа в поле Начальная скорость. По умолчанию скорость равна м/с. Здесь же вы можете выбрать единицы измерения этой скорости.

Функции, задающие скорость агента

Скорость
Функция Описание
void setSpeed(double v) Задает скорость (в пикселах в секунду), с которой агент будет передвигаться. Если на момент вызова метода агент движется, то он продолжит движение с новой скоростью. Если агент не движется, то он не начнет движение, пока вы не вызовете метод moveTo().

v — новая скорость
double getSpeed() Возвращает скорость агента (скорость является параметром агента, это та скорость, с которой он обычно передвигается, и ненулевая скорость еще не означает, что этот агент движется в данный момент времени).

Если вы задаете движение агента с помощью блока MoveTo, вы также можете задать требуемую скорость в свойствах этого блока.

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