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

Овал

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

У овала есть и третья размерность. Если в двумерной презентации фигура отображается в виде овала, то в окне трехмерной анимации — в виде цилиндра (см. рисунок ниже). Основание цилиндра вы рисуете в графическом редакторе, а высоту задаете в дополнительном свойстве фигуры Z-Высота.

Чтобы нарисовать овал

  1. Перетащите элемент Овал из палитры Презентация в то место графического редактора, где вы хотите нарисовать овал.
  2. Если же вы хотите сразу рисовать овал нужного вам размера, то используйте режим рисования. Чтобы перейти в этот режим, сделайте двойной щелчок мышью по элементу Овал  в палитре (при этом его значок должен поменяться на этот: ). Затем щелкните мышью в том месте диаграммы, где вы хотите нарисовать овал, и передвиньте ее, не отпуская кнопки, пока контур создаваемого овала не примет желаемый размер, после чего отпустите кнопку мыши.
  3. Если вы хотите увидеть также и трехмерную фигуру в 3D окне, перейдите в секцию Специфические панели Свойства и убедитесь, что выбрана опция Отображать в: 2D и 3D.
  4. В секции свойств Местоположение и размер вы можете изменить высоту цилиндра в поле Z-Высота, а также Z-координату его основания в поле Z.

Свойства

Основные

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

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

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

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

Блокировать — Если опция выбрана, то фигура будет считаться заблокированной и не будет реагировать на щелчки мыши. Таким образом, вы не сможете выбрать заблокированную фигуру в графическом редакторе до тех пор, пока вы не снимете с нее блокировку.
Обычно это требуется, когда у вас есть какой-то фоновый рисунок, используемый как подложка для анимации, и вы хотите исключить возможность случайного редактирования этого фонового рисунка при рисовании фигур поверх него.

Видимость — Здесь вы указываете, будет ли фигура отображаться на анимации во время исполнения модели. Выберите да или нет, используя элемент управления. Если вам нужно, чтобы видимость динамически изменялась или зависела от каких-либо условий, вы можете указать здесь выражение, задающее видимость фигуры. Это выражение будет динамически вычисляться во время исполнения модели. Оно должно возвращать логическое (булевское) значение. Фигура отображается в том случае, когда указанное выражение возвращает истинное значение, в противном случае фигура не видна.

Внешний вид

Цвет заливки — Задает цвет заливки фигуры. Щелкните мышью внутри элемента управления и выберите нужный цвет из списка наиболее часто используемых цветов или же выберите любой другой цвет с помощью диалога Цвета. Если вы не хотите, чтобы фигура была закрашена, выберите Нет заливки. Если вам нужно, чтобы цвет заливки динамически изменялся или зависел от каких-либо условий, вы можете указать здесь выражение, задающее цвет заливки фигуры. Это выражение будет динамически вычисляться во время исполнения модели. Оно должно возвращать экземпляр Java-класса Color. Если выражение возвращает null, заливка не производится.

Цвет линии — Задает цвет линии контура фигуры. Щелкните мышью внутри элемента управления и выберите нужный цвет из списка наиболее часто используемых цветов или же выберите любой другой цвет с помощью диалога Цвета. Если вы не хотите, чтобы линия контура была видна, выберите Нет линии.

Толщина линии — Задает толщину линии контура фигуры. Выберите нужную вам толщину из выпадающего списка или же введите ее значение в пикселях в поле справа.

Стиль линии — [Доступно, только если сброшен флажок Отображать в 3D] Задает стиль линии контура фигуры. Выберите из выпадающего списка, хотите ли вы, чтобы линия была сплошная, точечная или пунктирная. Используйте одну из трёх констант:

  • LINE_STYLE_SOLID — сплошная линия.
  • LINE_STYLE_DOTTED — точечная линия.
  • LINE_STYLE_DASHED — пунктирная линия.
Местоположение и размер

Тип — Выберите, фигура должна быть окружностью или овалом (оба радиуса овала равны).

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

X — x-координата центра овала.

Y — y-координата центра овала.

Z — z-координата основания цилиндра.

Радиус X — Горизонтальный радиус овала (в пикселях).

Радиус Y — Вертикальный радиус овала (в пикселях).

Z-Высота — z-высота цилиндра, в пикселях.

Поворот, ° — Угол поворота фигуры.

Масштаб по оси X — Коэффициент масштабирования фигуры по оси X.

Масштаб по оси Y — Коэффициент масштабирования фигуры по оси Y.

Масштаб по оси Z — Коэффициент масштабирования фигуры по оси Z.

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

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

Количество — Здесь вы указываете, какое количество экземпляров данной фигуры будет создано (целочисленное значение). Если вы оставите это поле пустым, то будет создана только одна такая фигура.

Действие по щелчку — Код, который будет выполняться при каждом щелчке пользователя мышью по фигуре во время выполнения модели. Если в точке щелчка несколько фигур наслаиваются друг на друга, действие должно быть задано для той фигуры, которая находится на самом верху.

Локальные переменные:
self — сам элемент clickx — x-координата щелчка относительно координат фигуры
clicky — y-координата щелчка относительно координат фигуры

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

Функции

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

Местоположение
Функция Описание
double getX()
double getY()
double getZ()
Возвращает X(Y, Z) координату фигуры (а именно, координату центра эллипса/круга).
void setX(double x)
void setY(double y)
void setZ(double z)
Задает новую X (Y, Z) координату фигуры.

x — новое значение координаты X
y — новое значение координаты Y
z — новое значение координаты Z
void setPos(double x, double y) Устанавливает новые координаты фигуры. Z координата остается неизменной.

x — новое значение координаты X
yновое значение координаты Y
void setPos(double x, double y, double z) Устанавливает новые координаты фигуры.

x — новое значение координаты X
y — новое значение координаты Y
z — новое значение координаты Z
Радиусы
Функция Описание
double getRadiusX() Возвращает радиус овала вдоль оси X, в пикселях.
double getRadiusY() Возвращает радиус овала вдоль оси Y, в пикселях.
void setRadiusX(double radiusX) Задает радиус овала вдоль оси X.

radiusX — радиус овала вдоль оси X, в пикселях.
void setRadiusY(double radiusY) Задает радиус овала вдоль оси Y.

radiusY - радиус овала вдоль оси Y, в пикселях.
void setRadius(double radius) Задает новое значение для обоих радиусов овала, т.е. делает его кругом заданного радиуса.

radius - радиус круга
Z-высота
Функция Описание
double getZHeight() Возвращает высоту фигуры вдоль оси Z.
void setZHeight(double zHeight) Устанавливает новую высоту фигуры вдоль оси Z.

zHeight — новая высота вдоль оси Z
Масштаб
Функция Описание
double getScaleX()
double getScaleY()
double getScaleZ()
Возвращает масштаб фигуры по оси координат X (Y, Z).
void setScaleX(double sx)
void setScaleY(double sy)
void setScaleZ(double sz)
Задает масштаб фигуры по оси координат X (Y, Z).

sx — новое значение масштаба по оси X *
sy — новое значение масштаба по оси Y *
sz — новое значение масштаба по оси Z *
* если параметр равен 1, то фигура сохраняет изначальный размер
void setScale(double sx, double sy) Устанавливает масштаб фигуры по осям координат X и Y.

sx — новое значение масштаба по оси X *
sy — новое значение масштаба по оси Y *
* если параметр равен 1, то фигура сохраняет изначальный размер
void setScale(double s) Устанавливает одинаковый масштаб по всем трем осям координат.

s — новое значение масштаба по всем осям координат *
* если параметр равен 1, то фигура сохраняет изначальный размер
Поворот
Функция Описание
double getRotation() Возвращает угол поворота фигуры в радианах, по часовой стрелке.
void setRotation(double r) Задает новый угол поворота фигуры.

r — новое значение угла поворота фигуры в радианах
Видимость
Функция Описание
boolean isVisible() Проверяет видимость фигуры. Если фигура видна, то возвращает true; если нет — то false.
void setVisible(boolean v) Устанавливает видимость фигуры.

v — видимость: если true, то фигура видна; если false, то не видна.
Заливка цветом
Функция Описание
Color getFillColor() Возвращает цвет фигуры. Возвращает null, если фигура не залита цветом или залита текстурой (в последнем случае следует использовать функцию getFillTexture()).
Texture getFillTexture() Возвращает текстуру фигуры (если в качестве заливки фигуры используется именно текстура).
void setFillColor(Color fillColor) Устанавливает цвет заливки фигуры.

fillColor — новый цвет заливки, если значение равно null, то у фигуры не будет заливки.
void setFillColor(Object fillColor) Устанавливает заливку фигуры цветом или текстурой.

fillColor — новая заливка (цвет или текстура), если значение равно null, то у фигуры не будет заливки.
Контур
Функция Описание
Color getLineColor() Возвращает цвет контура фигуры. Возвращает null, если у фигуры нет контура или контур текстурный (в последнем случае следует использовать функцию getLineTexture()).
Texture getLineTexture() Возвращает текстуру контура, если контур фигуры текстурный.
void setLineColor(Color lineColor) Устанавливает цвет контура фигуры.

lineColor — новый цвет контура, если значение равно null, то у фигуры нет контура.
void setLineColor(Object lineColor) Устанавливает цвет (или текстуру) для контура фигуры.

lineColor — новый цвет (или текстура) контура, если значение равно null, то у фигуры нет контура.
double getLineWidth() Возвращает ширину контура фигуры.
void setLineWidth(double width) Устанавливает ширину контура фигуры, где 0 означает самую тонкую линию.

width — новая ширина контура фигуры.
int getLineStyle() Возвращает стиль контура фигуры.

Допустимые значения:
LINE_STYLE_SOLID — сплошная линия
LINE_STYLE_DOTTED — точечная линия
LINE_STYLE_DASHED — пунктирная линия
void setLineStyle(int style) Устанавливает стиль контура фигуры. Если фигура отображается в 3D, то линия контура может быть только сплошной.

style — новый стиль контура фигуры
Допустимые значения:
LINE_STYLE_SOLID — сплошная линия
LINE_STYLE_DOTTED — точечная линия
LINE_STYLE_DASHED — пунктирная линия.
Режим отображения (2D / 3D)
Функция Описание
ShapeDrawMode getDrawMode() Возвращает режим отображения фигуры (где ее рисовать: в 2D, 3D или 2D+3D анимации).

Допустимые значения:
SHAPE_DRAW_2D3D — отображать и в 2D и в 3D анимации
SHAPE_DRAW_2D — отображать только в 2D анимации
SHAPE_DRAW_3D — отображать только в 3D анимации
void setDrawMode(ShapeDrawMode drawMode) Задает режим отображения фигуры (где ее рисовать: в 2D, 3D или 2D+3D анимации).
Функция может быть вызвана только один раз и только для фигуры, созданной программно с помощью конструктора без аргументов. Вызов функции, который будет менять уже заданный режим, приведет к ошибке.
drawMode — новый режим отображения фигуры
Допустимые значения:
SHAPE_DRAW_2D3D — отображать и в 2D и в 3D анимации
SHAPE_DRAW_2D — отображать только в 2D анимации
SHAPE_DRAW_3D — отображать только в 3D анимации
Группа
Функция Описание
ShapeGroup getGroup() Возвращает группу, содержащую эту фигуру.
Уровень
Функция Описание
Level getLevel() Возвращает уровень, на котором находится эта фигура.
Точки внутри фигуры
Функция Описание
boolean contains(double px, double py) Возвращает true, если фигура содержит точку с заданными координатами.

px — координата x относительно содержимого фигуры
py — координата y относительно содержимого фигуры
Point randomPointInside() Возвращает произвольно выбранную точку внутри фигуры.
Эта функция использует генератор случайных чисел объекта, содержащего эту фигуру. (Сгенерирует исключение, если фигура была создана из кода и не включена ни в какую из групп, в таком случае используйте функцию randomPointInside(Random rng)).
Point randomPointInside(java.util.Random rng) Возвращает произвольно выбранную точку из площади фигуры. Эта функция использует заданный генератор случайных чисел.

rng — генератор случайных чисел.
Как мы можем улучшить эту статью?