Многоугольная область

Многоугольная область является одним из поддерживаемых типов пешеходных областей в AnyLogic. Используйте элемент Многоугольная область, если ваша область имеет сложную форму. Если ваша область прямоугольная, то используйте элемент Прямоугольная область.

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

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

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

  1. Дважды щелкните элемент Многоугольная область в секции Разметка палитры Пешеходная библиотека.
  2. Значок элемента палитры поменяется на этот: . Это означает, что включился режим рисования и теперь вы можете рисовать область в графическом редакторе точка за точкой.
  3. Щелкните мышью по графическому редактору, чтобы поставить первую точку многоугольника. Щелкайте мышью, чтобы добавить углы. В итоге у вас получится область требуемой формы.

Свойства

Основные

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

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

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

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

Видимость – Если опция выбрана, то область будет отображаться на презентации во время выполнения модели.

Аттракторы... – Щелкните по этой кнопке, чтобы создать аттракторы внутри области. Аттракторами обозначают места, куда стремятся пешеходы.

Внешний вид

Цвет заливки – Задает цвет заливки фигуры. Если вы не хотите, чтобы фигура была закрашена, выберите Нет заливки.

Цвет линии – Задает цвет линии. Если вы не хотите, чтобы линия контура была видна, выберите Нет линии.

Толщина линии – Задает толщину линии контура фигуры.

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

Местоположение и размер

Этаж – Этаж, которому принадлежит эта область.

X – x-координата начальной точки области.

Y – y-координата начальной точки области.

Z – [Доступно, если опция Отображать в: Только в 3D выбрана] z-координата области, в метрах. Значение зависит от z-координаты этажа области.

Наклонная плоскость – Если флажок выбран, эта область лежит в наклонной плоскости (например, задает лестницу, соединяющую два этажа). Детальную информацию о том, как задать наклонную плоскость, вы можете найти здесь.

Точки

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

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

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

Отображать в - Здесь вы можете выбрать, будет ли фигура отображаться В 2D и в 3D, Только в 2D или Только в 3D.

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

Функции

Аттракторы

Функция

Описание

List<Attractor> getAttractors()

Возвращает нередактируемый список аттракторов, находящихся в этой области.

Положение

Функция

Описание

double getX()

Возвращает X-координату области.

double getY()

Возвращает Y-координату области.

double getZ()

Возвращает Z-координату области.

double getXMin()

Возвращает X-координату верхнего левого угла ограничивающего ломаную прямоугольника для этой области.

double getXMax()

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

double getYMin()

Возвращает Y-координату верхнего левого угла ограничивающего ломаную прямоугольника для этой области.

double getYMax()

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

void setPos(double x, double y, double z)

Задает новые координаты области. 

Параметры:
x - новое значение X-координаты.
y - новое значение Y-координаты.
z - новое значение Z-координаты.


Размер

Функция

Описание

double getWidth()

Возвращает ширину области (в пикселях).

double getHeight()

Возвращает высоту области (в пикселях).

void setSize
(double width, double height)

Задает ширину и высоту области.

Параметры:
width - новая ширина области (в пикселях).
height - новая высота области (в пикселях).


Видимость

Функция

Описание

boolean isVisible()

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

Если функция возвращает true - значит, область отображается, если false - нет.

void setVisible(boolean v)

Задает видимость области.

Параметр: v - видимость. Если значение v равно true, то область будет отображаться, если равно false - то нет.


Цвет заливки / текстура

Функция

Описание

Color getFillColor()

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

Texture getFillTexture()

Возвращает текстуру заливки фигуры или null, если у фигуры нет текстуры заливки или если фигура использует цвет заливки (в последнем случае используйте функцию getFillColor()).

void setFillColor(Color color)

Задает цвет заливки фигуры.

Параметр:
color - новый цвет.

void setFillColor(Paint color)

Задает для фигуры новый цвет заливки (или текстуру, объект типа Texture).

Параметр:
color - новый цвет или текстура


Внешний вид контура области

Функция

Описание

double getLineWidth()

Возвращает ширину контура области. 

void setLineWidth(double width)

Задает ширину контура области; 0 обозначает минимально допустимую ширину контура.

Параметр:
width - новая ширина контура области.

Color getLineColor()

Возвращает цвет контура области или значение null, если у контура нет цвета, а есть только текстура (в данном случае используйте функцию getLineTexture(), чтобы получить текстуру контура).

Texture getLineTexture()

Возвращает текстуру контура области или значение null, если у контура нет текстуры, а есть только цвет (в данном случае используйте функцию getLineColor(), чтобы получить цвет контура).

void setLineColor(Color color)

Задает цвет заливки для области.

Параметр:
color - новый цвет.

void setLineColor(Paint color)

Задает цвет (или текстуру) заливки для области.

Параметр:
color - новый цвет или текстура.

LineStyle getLineStyle()

Возвращает стиль линии для контура области. 

Допустимые значения:
LINE_STYLE_SOLID - сплошная линия.
LINE_STYLE_DOTTED - пунктирная линия.
LINE_STYLE_DASHED - штрих-пунктирная линия.

void setLineStyle(LineStyle lineStyle)

Задает стиль линии для контура области. 

Допустимые значения:
LINE_STYLE_SOLID - сплошная линия.
LINE_STYLE_DOTTED - пунктирная линия.
LINE_STYLE_DASHED - штрих-пунктирная линия.


Точки

Функция

Описание

double getNearestPoint(double x, double y, Point out)

Рассчитывает точку внутри области, расположенную ближе всего к точке с координатами (x, y) и записывает результаты в объект out типа Point. Возвращает квадрат расстояния до точки. Все расчеты производятся в горизонтальной XY-проекции (т.е. значения координат по оси Z рассматриваются как равные нулю).

Параметры:
x - Х-координата точки.
y
- Y-координата точки.
out - объект, в который записываются результаты.

double getNearestPoint(double x, double y, double z, Point out)

Рассчитывает точку внутри области, расположенную ближе всего к точке с координатами (x, y, z) и записывает результаты в объект out типа Point. Возвращает квадрат расстояния до точки.

Параметры:
x - Х-координата точки.
y
- Y-координата точки.
z
- Z-координата точки.
out - объект, в который записываются результаты.

boolean contains(double px, double py)

Возвращает true, если точка с заданным координатами (относительно контейнера области) раположена внутри области; в противном случае возвращает false.

Параметры:
px - Х-координата точки.
py - Y-координата точки.

Point randomPointInside(Random rng, Point out)

Возвращает случайную точку внутри области; для этого используется генератор случайных чисел.

Параметры:
rng - генератор случайных чисел.
out - объект типа Point, в который записывается результат. Может быть равен null.


Этаж

Функция

Описание

Ground getGround()

Возвращает этаж, на котором расположена данная область или значение null , если область не является частью какого-либо этажа.


Пешеходная очередь

Функция

Описание

List getPeds()

Возвращает список пешеходов, на данный момент находящихся в этой области.

int size()

Возвращает количество пешеходов, на данный момент находящихся в этой области.


Удаление

Функция

Описание

void remove()

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



См. также

Разметка пространства пешеходных моделей

Сервис с очередями

Сервис с областью

Сервис с очередью - "змейкой"

Java документация (англ.): Класс QueueArea