Поворот анимации агента

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

Чтобы задать угол поворота агента

  1. Откройте панель Свойства типа агента, щелкнув по нему мышью в панели Проекты.
  2. Откройте секцию свойств Движение.
  3. Опция Поворачивать анимацию согласно направлению движения включена по умолчанию. Вы можете отключить ее, если хотите задать поворот вручную, например, с помощью аттрактора.
  4. Если вы также хотите вращать фигуру анимации вертикально, поставьте флажок в опции ниже.


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

Функции, задающие поворот

void setRotation( double rotation ) - Задает угол поворота анимации агента (в радианах, по часовой стрелке). Этот угол поворота будет переопределен при следующем вызове метода moveTo().
Параметры:
rotation - угол поворота анимации агента (в радианах).

double getRotation() - Возвращает текущий угол поворота агента (в радианах, по часовой стрелке, нулевому углу соответствует положение часовой стрелки, показываюшей на три часа). Если вращение не запрещено, то этот угол меняется при начале каждого нового перемещения агента.

void setAutomaticHorizontalRotation(boolean yes) - Заставляет агента автоматически вращаться во время перемещений.
Параметр:
yes - true - агент будет вращаться во время движения, false - поворот не изменяется

boolean isAutomaticHorizontalRotation() - Возвращает true, если агент настроен вращаться во время движения, иначе false.

void setVerticalRotation(double rotation) - Устанавливает вертикальный поворот (угол в радианах) вдоль оси Z анимации агента в 3D пространстве. В зависимости от настроек автоматического вращения, этот поворот может быть отменен во время следующего вызова moveTo() или во время следующего движения вдоль пути.

double getVerticalRotation() - Возвращает угол текущего вертикального поворота агента в 3D пространстве. Если установлен режим автоматического вертикального вращения, поворот меняется каждый раз, когда агент начинает движение, а также меняется много раз, пока агент движется вдоль пути.

void setAutomaticVerticalRotation(boolean yes) - Заставляет агента автоматически вращаться (вертикально, вдоль оси Z) во время движения в 3D пространстве.
Параметры:
yes - true - агент будет вращаться во время движения (например, коробка, которая едет по конвейеру), false - поворот не меняется (например, пассажир перемещается на этаж выше)

boolean isAutomaticVerticalRotation() - Возвращает true, если агент настроен вращаться (вертикально, вдоль оси Z) во время движения в 3D пространстве, иначе false.
Возвращает:
true, если агент будет вращаться во время движения (например, коробка, которая едет по конвейеру), false - поворот не меняется (например, пассажир перемещается на этаж выше)


См. также

Анимация агента