Линия

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

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

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

Свойства

Основные

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

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

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

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

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

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

Внешний вид

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

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

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

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

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

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

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

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

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

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

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

Поворот (Z) –  Угол поворота фигуры в плоскости XY.

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

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

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

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

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

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

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

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

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

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

Функции

Местоположение

Функция

Описание

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 getEndX()

double getEndY()

double getEndZ()

Возвращает X (Y, Z) координату фигуры, а именно, конечной точки линии.

void setEndX(double endx)

void setEndY(double endy)

void setEndZ(double endz)

Задает X (Y, Z) координату конечной точки линии.

Параметры:    
endx
новое значение координаты X
endyновое значение координаты Y
endz
новое значение координаты Z

double getDx()

double getDy()

double getDz()

Возвращает разницу между X (Y, Z) координатами начальной и конечной точек линии.

void setDx(double dx)

void setDy(double dy)

void setDz(double dz)

Задает разницу между X (Y, Z) координатами начальной и конечной точек линии.

Параметры:
dx - новая разница между X координатами конечной и начальной точек линии
dy - новая разница между Y координатами конечной и начальной точек линии
dz - новая разница между Z координатами конечной и начальной точек линии

double length()

Возвращает длину линии.

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 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 - новый стиль линии

Точки на линии

Функция

Описание

boolean contains(double px, double py)

Проверяет, содержит ли многоугольник (на основании точек линии) точку с заданными координатами относительно начальной точки линии.
Возвращает 
true, если фигура содержит точку с заданными координатами. 

Параметры:
px - координата X относительно содержимого фигуры
py - координата Y относительно содержимого фигуры 

Point randomPointInside()

Возвращает случайно выбранную точку из области заливки линии (как если бы она была замкнутой).

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

Возвращает null, если линия не содержит точек.

Point randomPointInside
(java.util.Random rng)

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

Параметр:
rng - генератор случайных чисел.


См. также

 Перемещение фигуры

 Изменение размера фигуры

 Вращение фигуры

 Изменение цвета фигуры

 Изменение уровня расположения фигуры при наложении фигур

 Управление видимостью фигур