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

Ломаная

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

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

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

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

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

Свойства

Основные

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

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

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

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

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

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

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

Внешний вид

Цвет заливки — Цвет заливки ломаной. Ломаная закрашивается следующим образом: рисуется линия, соединяющая начальную и конечную точки ломаной (если ломаная уже не была сделана замкнутой), и закрашивается область внутри образовавшейся фигуры.

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

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

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

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

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

X — x-координата начальной точки ломаной.

Y — x-координата начальной точки ломаной.

Z — x-координата начальной точки ломаной.

dX — Смещение конечной точки относительно начальной по оси X.

dY — Смещение конечной точки относительно начальной по оси Y.

dZ — Смещение конечной точки относительно начальной по оси Z.

Z-Высота — z-высота ломаной (высота по оси Z).

Поворот — Здесь вы можете указать выражение, возвращающее угол поворота фигуры в плоскости XY.

Масштаб по оси X — Здесь вы можете указать выражение, возвращающее коэффициент масштабирования фигуры по оси X*.

Масштаб по оси Y — Здесь вы можете указать выражение, возвращающее коэффициент масштабирования фигуры по оси Y*.

Масштаб по оси Z — [Доступно, только если установлен флажок Отображать в 3D] Здесь вы можете указать выражение, возвращающее коэффициент масштабирования фигуры по оси Z*.

* Указав выражения для Масштаба по оси X, Масштаба по оси Y и в некоторых случаях Масштаба по оси Z, вы сможете определять масштаб фигуры во время выполнения модели.
Точки ломаной

В секции свойств Точки расположена таблица, позволяющая просматривать и изменять координаты точек.
Здесь задаются относительные (не абсолютные) координаты. Первая точка всегда имеет координаты (0,0,0), и они не редактируются.
В остальных строках таблицы задаются координаты последующих точек ломаной. Координаты каждой точки представляют собой смещения этой точки от начальной по оси X, Y и Z соответственно.
И если координаты точек в двумерном пространстве XY вы можете изменить и в графическом редакторе, то расположение точек ломаной относительно оси Z можно изменить только в этой таблице.

Количество точек — Здесь задается выражение, динамически пересчитывающее количество точек ломаной.

dX[indexPt] — Здесь задается выражение для смещения точки ломаной с номером indexPt по оси X относительно начальной точки. Номер текущей точки доступен как indexPt. Нумерация начинается с нуля.

dY[indexPt] — Здесь задается выражение для смещения точки ломаной с номером indexPt по оси Y относительно начальной точки. Номер текущей точки доступен как indexPt. Нумерация начинается с нуля.

dZ[indexPt] — Здесь задается выражение для смещения точки ломаной с номером indexPt по оси Z относительно начальной точки. Номер текущей точки доступен как indexPt. Нумерация начинается с нуля.

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

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

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

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

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

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

Редактирование внешнего вида ломаной

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

Чтобы перейти в режим редактирования точек ломаной

  1. Сделайте двойной щелчок мышью по ломаной или
    Щелкните правой кнопкой мыши по ломаной и выберите Редактирование точек из контекстного меню.
  2. Точки изгиба ломаной будут выделены с помощью маленьких кружков — это будет означать, что вы перешли в режим редактирования точек изгиба.

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

  1. Перейдите в режим редактирования точек ломаной.
  2. Перетащите точку с помощью мыши.

Чтобы добавить новую точку изгиба

  1. Перейдите в режим редактирования точек ломаной.
  2. Сделайте двойной щелчок мышью по тому отрезку ломаной, куда вы хотите добавить новую точку.

Чтобы удалить точку изгиба

  1. Перейдите в режим редактирования точек ломаной.
  2. Сделайте двойной щелчок мышью по той точке, которую вы хотите удалить.

Функции

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

Местоположение
Функция Описание
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
Координаты точек ломаной, длина
Функция Описание
int getNPoints() Возвращает количество точек ломаной.
void setNPoints(int n) Задает количество точек фигуры. Ничего не произойдет, если новое количество точек равно текущему количеству. Если же значения различаются, то в новой фигуре будут сохранены координаты максимально возможного количества точек.

n — новое количество точек.
double getPointDx(int i)
double getPointDy(int i)
double getPointDz(int i)
Возвращает координату X (Y, Z) определенной точки фигуры относительно ее начальной точки.

i — индекс точки (отсчет начинается с 0).
void setPoint(int i, double ptdx, double ptdy) Задает координаты определенной точки фигуры относительно ее начальной точки. Z-координата остается без изменений.

i — индекс точки (отсчет начинается с 0)
ptdx — новая X-координата точки относительно начальной точки фигуры
ptdy — новая Y-координата точки относительно начальной точки фигуры.
void setPoint(int i, double ptdx, double ptdy, double ptdz) Задает координаты определенной точки фигуры относительно ее начальной точки.

i — индекс точки (отсчет начинается с 0).
ptdx — новая X-координата точки относительно начальной точки фигуры
ptdy — новая Y-координата точки относительно начальной точки фигуры
ptdz — новая Z-координата точки относительно начальной точки фигуры.
void setPointDx(int i, double ptdx)
void setPointDy(int i, double ptdy)
void setPointDz(int i, double ptdz)
Задает координату X (Y, Z) определенной точки фигуры относительно ее начальной точки.

i — индекс точки (отсчет начинается с 0)
ptdx — новая X-координата точки относительно начальной точки фигуры
ptdy — новая Y-координата точки относительно начальной точки фигуры
ptdz — новая Z-координата точки относительно начальной точки фигуры
boolean isClosed() Возвращает true, если ломаная замкнута, иначе, false.
void setClosed (boolean closed) Задает замкнутость ломаной.

closed — если задано true, ломаная будет замкнута, если false — то нет.
double length() Вычисляет и возвращает длину (не масштабированной) ломаной, с учетом ее замкнутости.
Для 3D ломаной также учитывает z-координаты точек.
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) Устанавливает масштаб фигуры по осям координат X и Y.

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, то у фигуры не будет заливки.
Координаты прямоугольника ломаной
Функция Описание
double getXMax() Возвращает x-координату нижнего правого угла, ограничивающего ломаную прямоугольника.
double getXMin() Возвращает x-координату верхнего левого угла, ограничивающего ломаную прямоугольника.
double getYMax() Возвращает y-координату нижнего правого угла, ограничивающего ломаную прямоугольника.
double getYMin() Возвращает y-координату верхнего левого угла, ограничивающего ломаную прямоугольника.
Внешний вид линии
Функция Описание
Color getColor() Возвращает цвет линии, или null, если у линии нет цвета, либо линия текстурная (в таком случае используйте функцию getTexture()).
Texture getTexture() Возвращает текстуру линии, если линия залита текстурой.
void setColor(Color color) Задает цвет линии.

color — новый цвет линии, если задано null, то у линии нет цвета.
void setColor(Object color) Задает цвет (или текстуру) линии.

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

width — новая ширина линии
int getLineStyle() Возвращает стиль линии, одну из трех констант:
  • LINE_STYLE_SOLID — сплошная линия
  • LINE_STYLE_DOTTED — точечная линия
  • LINE_STYLE_DASHED — пунктирная линия
void setLineStyle(int style) Задает стиль линии, одну из трех констант:
  • LINE_STYLE_SOLID — сплошная линия
  • LINE_STYLE_DOTTED — точечная линия
  • LINE_STYLE_DASHED — пунктирная линия


style — новый стиль линии.
Режим отображения (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)).
Возвращает null, если ломаная не содержит точек.
Point randomPointInside(java.util.Random rng) Возвращает произвольно выбранную точку из площади фигуры. Эта функция использует заданный генератор случайных чисел.

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