AnyLogic поддерживает поворот фигуры анимации агента во время движения и предоставляет несколько функций, с помощью которых вы можете легко управлять поворотом фигуры. Опция поворота анимации во время движения всегда включена по умолчанию в свойствах типа агента.
Чтобы задать угол поворота агента
- Откройте панель Свойства типа агента, щелкнув по нему мышью в панели Проекты.
- Откройте секцию свойств Размеры и движение.
- Опция Поворачивать анимацию согласно направлению движения включена по умолчанию. Вы можете отключить ее, если хотите задать поворот вручную, например, с помощью аттрактора.
- Если вы также хотите вращать фигуру анимации вертикально, поставьте флажок в опции ниже.
Вы можете задать поворот фигуры анимации агента при достижении точки назначения с помощью аттрактора.
- Вращение
-
Функция Описание 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.
-
Как мы можем улучшить эту статью?
-