Стоп-линия

Элемент Стоп-линия является графическим элементом разметки пространства, задающим точку на дороге, у которой транспорт должен останавливаться, если это указано в блоке СarMoveTo (блок может направлять автомобили к стоп-линии).

Стоп-линия может добавлять следующие дорожные знаки в местах собственного расположения на дорогах: Ограничение скорости, Конец ограничения скорости и Уступить дорогу. Дорожные знаки повлияют на дорожное движение у стоп-линии, у которой они установлены. Описание дорожных знаков доступно ниже, в секции Дорожные знаки свойств элемента Стоп-линия.

Стоп-линия может быть использована блоком Traffic Light для регулирования движения на сложно контролируемых участках дорожного движения.

Демо модель: Stop line

Как создать стоп-линию

  1. Перетащите элемент Стоп-линия   из секции Разметка пространства палитры Библиотека дорожного движения на графическую диаграмму, которая содержит дорогу. Стоп-линию можно создавать только после того, как будет создана дорога, на которой она будет нарисована. Перетаскивая стоп-линию по диаграмме, вы увидите, что все фигуры, кроме дорог, будут временно скрыты. 
  2. Поместите указатель на дороге в том месте, куда вы хотите установить стоп-линию, и отпустите кнопку мыши. Элемент будет установлен в указанном месте. Положение элемента на дороге можно изменить путем перетягивания его мышкой.
  3. Установите дорожные знаки, если необходимо (отметив соответствующий пункт в секции Дорожные знаки свойств элемента). У этой линии можно дополнительно использовать блок Traffic Light. Дорожные знаки, как и светофор, будут определять поведение транспорта у этой стоп-линии.
  4. Теперь можно указать этот элемент в качестве места назначения в свойствах блока СarMoveTo.
Как изменить местоположение стоп-линии
  1. Щелкните левой кнопкой мыши по стоп-линии, которую вы хотите переместить.
  2. Перетащите стоп-линию в необходимое место на текущей дороге. Вы также можете переместить ее изменив значение в пункте свойств Смещение от начала дороги элемента стоп-линия, это определит точное местоположение элемента.

Свойства

Основные

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

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

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

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

Видимость – Здесь вы можете указать, будет ли фигура видна на анимации во время выполнения модели или нет. Используя элемент управления, выберите да или нет.

Дорожные знаки

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

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

Уступить дорогу - Автомобиль, приближающийся к текущей стоп-линии, должен остановиться и уступить дорогу транспортным средствам, движущимся по пересекаемой дороге.

Действия

При проезде машины - Здесь вы можете задать код, который будет выполняться, когда автомобиль будет проезжать через стоп-линию. К автомобилю можно обратиться посредством локальной перемнной car.  Полоса дороги, на которой находится автомобиль, задается через локальную переменную laneIndex. Нумерация полос начинается с внешней полосы (ей присвоен номер 0).

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

Смещение от начала дороги – Расстояние от начала дороги до стоп-линии.

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

Отображать в – Здесь вы можете выбрать, хотите ли вы, чтобы элемент отображался В 2D и в 3D анимации или Только 2D или Только 3D

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

Функции

Знаки

addSpeedLimitSign(double speedLimit, SpeedUnits units) - Добавляет знак "Ограничение скорости" к стоп-линии. К примеру, addSpeedLimitSign(90, KPH) добавляет знак "ограничение максимальной скорости 90 километров в час".

Параметры:
speedLimit - 
значение скорости в заданных единицах измерения скорости
units - константа единиц измерения скорости

double getSpeedLimit(SpeedUnits units) - Возвращает действительное значение ограничения скорости в заданных единицах измерения скорости, если у стоп-линии установлен знак "Ограничение максимальной скорости".  К примеру, getSpeedLimit(KPH) возвращает ограничение скорости в километрах в час.

Параметрunits - константа единиц измерения скорости

addEndOfSpeedLimitSign() - Добавляет знак "Конец ограничения скорости" к указанной стоп-линии.

boolean isOfSpeedLimitSign() - Возвращает true, если у стоп-линии есть знак "Конец ограничения скорости", false в противном случае.

addYieldSign() - Добавляет знак "Уступи дорогу" к указанной стоп-линии.

boolean isYieldSign() - Возвращает true, если у этой стоп-линии установлен знак "Уступи дорогу", false в противном случае.

Светофор

TrafficLightSignal getSignal() - Возвращает текущий сигнал светофора на дороге (SIGNAL_REDSIGNAL_YELLOWSIGNAL_GREEN) или SIGNAL_NONE если сигнал не задан.

setSignal(TrafficLightSignal signal) - Изменяет текущий сигнал светофора на newSignal. Применяется, если эта точка дороги не контролируется светофором. 
Параметр: signal - Новый сигнал, который задается позиции на дороге. Допустимые значения: SIGNAL_REDSIGNAL_YELLOWSIGNAL_GREENSIGNAL_NONE.
Скорость

double averageSpeed() - Возвращает среднюю скорость движения (в метрах в секунду) в точке, заданной стоп-линией.

double averageSpeed(SpeedUnits units) - Возвращает среднюю скорость движения (в указанных единицах измерения скорости) в точке, заданной стоп-линией.

Параметры: units - константа единиц измерения скорости
Позиция

int getLaneIndexFrom() - Возвращает индекс дорожной полосы, на которой начинается стоп-линия. Полоса с индексом  0 находится у обочины дороги.

int getLaneIndexTo() - Возвращает индекс дорожной полосы, на которой заканчивается стоп-линия. Полоса с индексом  0 находится у обочины дороги.

setLaneIndexFrom(int laneIndexFrom) - Задает дорожную полосу, на которой начинается стоп-линия.
ПараметрlaneIndexFrom - номер полосы, где 0 - номер полосы у обочины дороги
setLaneIndexTo(int laneIndexTo) - Задает дорожную полосу, на которой заканчивается стоп-линия.
ПараметрlaneIndexTo - номер полосы, где 0 - номер полосы у обочины дороги
Видимость

void setVisible(boolean v) - Задает видимость стоп-линии.

Параметрv - видимость стоп-линии. Если true - стоп-линия видна, если false - нет.

boolean isVisible() - Проверяет, видна ли стоп-линия. Если true, стоп-линия видна, если false - нет.

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

double getOffset() - Возвращает расстояние (в пикселях) от начала дороги до стоп-линии.

double getOffset(LengthUnits units) - Возвращает расстояние (в указанных единицах измерения длины) от начала дороги до стоп-линии.
Параметр: units - константа единиц измерения длины

boolean isOnForwardSide() - Возвращает true, если стоп-линия находится на полосе основного направления, false , если установлена у полосы встречного направления.

Road getRoad() - Возвращает дорогу, на которой установлена стоп-линия.

RoadNetwork getRoadNetwork() - Возвращает дорожную сеть, в которой находится стоп-линия.

См. также

 Учебное пособие по Библиотеке дорожного движения

 Элементы разметки Библиотеки дорожного движения

 Блоки Библиотеки дорожного движения