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

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

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

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

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

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

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

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

rotation — угол поворота анимации агента (в радианах)
double getRotation() Возвращает текущий угол горизонтального вращения агента в непрерывном трехмерном или ГИС-пространстве (измеряется относительно точки координат 1.0 по часовой стрелке; т.е. нулевому углу соответствует положение часовой стрелки, показывающей на три часа). Значение возвращается в радианах.
Вы можете отключить автоматическое вращение агента в его свойствах (для этого отключите опцию Поворачивать анимацию согласно направлению движения) или с помощью функции setAutomaticHorizontalRotation(). Если автоматическое вращение активно, то агент вращается автоматически при начале движения, а также при поворотах внутри непрерывного трехмерного или ГИС-пространства.
Чтобы повернуть агента вручную, используйте функцию setRotation().
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.
Как мы можем улучшить эту статью?