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

Камера

Камера используется для определения того, какой именно участок презентации будет отображаться в окне трехмерной анимации. Она как бы "снимает" то, что "показывает" окно трехмерной анимации (3D окно) (естественная аналогия — камера видеонаблюдения и дисплей на пульте оператора).

Если вы хотите, чтобы при запуске модели в окне трехмерной анимации отображались именно нужные вам объекты (и под оптимальным углом), то лучше один раз задать нужное вам расположение смотрящего на сцену (и направление его взгляда) с помощью камеры, чем постоянно перемещаться к требуемым объектам по ходу выполнения модели.

Вы можете задать сразу несколько камер, направленных как на разные участки трехмерной сцены, так и на одни и те же объекты, но из разных точек и/или под разными углами, и переключаться между ними во время работы модели.

Камера может перемещаться по ходу выполнения модели. Вы можете сделать так, что в окне 3D анимации всегда отображалась картинка, попадающая в объектив движущейся камеры. Эта возможность может быть полезна в том случае, если вы хотите постоянно иметь в поле зрения объект, который может двигаться по ходу выполнения модели.

Демо-модель: Multiple 3D Windows and Cameras Открыть страницу модели в AnyLogic Cloud. Там можно запустить модель или скачать ее по ссылке Исходные файлы модели.

Чтобы добавить камеру

  1. Перетащите элемент Камера из секции 3D палитры Презентация в то место диаграммы вашего типа агента, где вы хотите ее поместить. Вы увидите значок камеры:

  2. Поверните камеру так, чтобы она была направлена на нужные вам фигуры презентации (это подробно описано ниже).
  3. Теперь вы можете выбрать эту камеру в качестве камеры окна трехмерной анимации. Выделите 3D окно и выберите имя этой камеры в его свойстве Камера. Если вы предполагаете, что ваша камера будет двигаться во время работы модели, и вы хотите, чтобы окно следовало за этой камерой, то выберите опцию Следовать за камерой.

Свойства

Основные свойства

Имя — Имя камеры. Имя используется для идентификации элемента и для программного доступа к этому элементу.

Отображать имя — Если опция выбрана, то имя камеры будет отображаться в графическом редакторе.

Исключить — Если опция выбрана, то камера будет исключена из модели.

Поворот X, ° — Угол направления камеры в плоскости YZ (от оси Y, направленной в обратную сторону, по часовой стрелке, в градусах).

Поворот Z, ° — Угол направления камеры в плоскости XY (от оси Y, направленной в обратную сторону, по часовой стрелке, в градусах).

Вставить координаты из Буфера обмена — Щелкните по кнопке, чтобы вставить из Буфера обмена значения поворота камеры в поля Поворот X и Поворот Y.

Расположение

Уровень — уровень, на котором находится эта камера.

X — x-координата центра камеры.

Y — y-координата центра камеры.

Z — z-координата центра камеры.

Специфические

Отображать в — Опция недоступна, поскольку камера во время работы модели не видна.

Позиционирование камеры

После того, как вы добавите камеру на диаграмму типа агента, нужно будет направить ее на те фигуры презентации, которые вы хотите "снимать" этой камерой.

Чтобы направить камеру на определенные фигуры презентации

  1. Поместите камеру так, чтобы она была направлена на те фигуры презентации, которые вы хотите увидеть в окне трехмерной анимации (желательно, на небольшом отдалении от них).
  2. Теперь нужно будет повернуть камеру так, чтобы она была направлена на них под таким углом, при котором все фигуры попадут в объектив камеры. Выделите камеру. Вы увидите синий круг, нарисованный вокруг ее значка, а также стрелку, направленную от центра камеры. Эта стрелка показывает, куда направлена камера в плоскости XY (такой тип вращения называется в AnyLogic поворотом Z).
  3. Чтобы повернуть камеру в плоскости XY, перетащите конец стрелки в нужном вам направлении вдоль окружности.
  4. Длина этой стрелки также имеет значение — она показывает угол наклона камеры в плоскости YZ (Х-поворот камеры): чем ближе конец стрелки к центру камеры, тем больше камера наклонена в этой плоскости. Если стрелки не видно, то это значит, что камера направлена вертикально вниз или вверх. Оставьте этот угол поворота без изменения, мы настроим его на следующем шаге.
  5. Запустите модель и точно разместите камеру в режиме запуска модели. Добейтесь того, чтобы все нужные вам фигуры попали в объектив камеры. Для этого вам может понадобится приблизить содержимое окна, повернуть его или переместить — все эти операции подробно описаны здесь.
  6. Когда вы закончите настройку вашей камеры, щелкните правой кнопкой мыши по экрану окна трехмерной анимации и выберите Копировать положение камеры из контекстного меню. Эта команда скопирует текущие настройки расположения и направленности камеры в Буфер обмена.
  7. Чтобы использовать эти настройки в вашей камере, выделите ее в графическом редакторе и нажмите на кнопку Вставить координаты из Буфера обмена в панели ее свойств. При этом эта камера автоматически переместится и будет повернута в графическом редакторе так, как вы ее ранее настроили во время работы модели.

Функции

Местоположение
Функция Описание
double getX() Возвращает X-координату камеры.
double getY() Возвращает Y-координату камеры.
double getZ() Возвращает Z-координату камеры.
void setX(double x) Задает X-координату камеры.

x — новое значение координаты X
void setY(double y) Задает Y-координату камеры.

y — новое значение координаты Y
void setZ(double z) Задает Z-координату камеры.

z — новое значение координаты Z
void setPos(double x, double y, double z) Задает новое местоположение камеры.

x — новое значение координаты X
y — новое значение координаты Y
z — новое значение координаты Z

Поворот
Функция Описание
double getRotationX() Возвращает угол поворота камеры вокруг оси X (по часовой стрелке, от Y к Z). Нулевое значение поворота соответствует горизонтальному расположению камеры (параллельно XY плоскости).
double getRotationZ() Возвращает угол поворота камеры вокруг оси Z (по часовой стрелке, от X к Y).
void setRotationX(double rotationX) Задает угол поворота камеры вокруг оси X (по часовой стрелке, от Y к Z). Нулевое значение поворота соответствует горизонтальному расположению камеры (параллельно XY плоскости).

rotationX — новое значение поворота, в радианах
void setRotationZ(double rotationZ) Задает угол поворота камеры вокруг оси Z (по часовой стрелке, от X к Y).

rotationZ — новое значение поворота, в радианах

Уровень
Функция Описание
Level getLevel() Возвращает уровень, на котором находится камера.
Копирование местоположения в буфер обмена
Функция Описание
String copyToClipboard() Копирует координаты камеры в Буфер обмена в формате, поддерживаемом AnyLogic.
Чтобы вставить скопированные настройки в AnyLogic, выделите камеру и щелкните по кнопке Вставить координаты из Буфера обмена в свойствах этой камеры.
Как мы можем улучшить эту статью?