Автобусная остановка

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

Чтобы промоделировать движение автобусов к остановке, используйте блок Библиотеки дорожного движения CarMoveTo. Чтобы промоделировать пребывание автобуса на автобусной остановке в течение определенного времени, поместите после блока CarMoveTo блок Библиотеки Моделирования Процессов Delay.

Моделирование автобусной остановки описано в шестой фазе Учебного пособия по Библиотеке дорожного движения.

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

Как создать автобусную остановку

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

Свойства

Основные

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

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

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

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

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

Длина – Определяет длину автобусной остановки. По умолчанию длина остановки составляет 20 метров.

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

Смещение от начала дороги – Расстояние от начальной точки дороги до начальной точки автобусной остановки, в пикселях.

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

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

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

Функции

Автомобили

List<Agent> getCars() - Возвращает упорядоченный список автомобилей, расположенных на этой остановке. Первый автомобиль в списке ближе всех находится к выезду из остановки (первым покинет остановку).

int nCars() - Возвращает количество автомобилей, находящихся на этой остановке.

Длина

double getLength() - Возвращает длину автобусной остановки в пикселях со стороны прилегающей к ней дороги.

double getLength(LengthUnits units) - Возвращает длину автобусной остановки в указанных единицах измерения длины со стороны прилегающей к ней дороги. К примеру, getLength(METER)возвращает длину автобусной остановки в метрах.

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

void setLength(double lengthInPixels) - Задает длину автобусной остановки равной lengthInPixels.

Параметр: lengthInPixels - длина автобусной оставноки в пикселях

void setLength(double length, LengthUnits units) - Задает длину автобусной остановки в указанных единицах измерения длины. К примеру, setLength(15, METER) задает длину остановки равной 15 метрам.

Параметры:
length - длина автобусной остановки в указанных единицах измерения длины
units -
 константа единиц измерения длины

Видимость

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() - Возвращает дорожную сеть, в которой находится автобусная остановка.


См. также

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

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

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