Объект Switch задает железнодорожную стрелку. Стрелка представляет собой устройство, служащее для разветвления путей. В AnyLogic стрелка соединяет минимум три пути и позволяет подвижному составу переходить с одного пути на другой. В зависимости от типа стрелки количество соединенных путей и правила движения состава по путям будут разными. AnyLogic поддерживает три типа стрелки:
Универсальная
Этот тип стрелки используется по умолчанию. Он соединяет неограниченное количество путей и задает следующие правила движения:
- прямое движение без смены направления вдоль любых двух путей
- смена направления вдоль любого тупого угла, образуемого соединением двух путей
Простая английская
Этот тип стрелки соединяет 4 пути и задает следующие правила движения:
- прямое движение без смены направления вдоль любых двух путей
- смена направления вдоль тупого угла, образуемого соединением с участием переключающего пути (например, движение с пути 1 на путь 3 и наоборот, как указано на изображении выше). Вы можете выбрать переключающий путь в свойствах элемента Стрелка.
Английская
Этот тип стрелки соединяет 4 пути и задает следующие правила движения:
- прямое движение без смены направления вдоль любых двух путей
- смена направления вдоль любого тупого угла, образуемого соединением двух путей
Стрелка создается автоматически, когда вы соединяете ж/д пути.
Вы можете переключить состояние стрелки, щелкнув мышью внутри задающего ее круга или посредством программного интерфейса.
Вам не нужно часто обращаться к функциям объекта Switch, поскольку при движении поезда по заданному маршруту объект TrainMoveToавтоматически меняет состояния стрелок.Стрелка отображается на анимации в виде круга. С помощью тонкой линии, нарисованной поверх кружка, показывается состояние стрелки (направление движения поезда через стрелку).
- Основные свойства
-
Имя — Имя фигуры.
Исключить — Если опция выбрана, то фигура будет исключена из модели.
Отображается на верхнем агенте — Если опция выбрана, то фигура будет видна на презентации типа агента, в который будет вложен данный агент.
Блокировать — Если опция выбрана, то фигура будет считаться заблокированной и не будет реагировать на щелчки мыши. Таким образом, вы не сможете выбрать заблокированную фигуру в графическом редакторе до тех пор, пока вы не снимете с нее блокировку.
Обычно это требуется, когда у вас есть какой-то фоновый рисунок, используемый как подложка для анимации, и вы хотите исключить возможность случайного редактирования этого фонового рисунка при рисовании фигур поверх него.Видимость — Если опция выбрана, то фигура будет отображаться на презентации во время выполнения модели.
Тип — Здесь вы можете выбрать тип стрелки, чтобы задать правила движения состава. Вы можете выбрать Универсальную, Простую английскую или Английскую стрелки.
Переключающий путь — [Виден только если в свойстве Тип выбрана опция Простая английская] Здесь вы можете выбрать единственный путь, вдоль которого может происходить смена направления движения поезда.
- Специфические
-
Отображать в — Здесь вы можете выбрать, будет ли фигура отображаться В 2D и в 3D, Только в 2D или Только в 3D.
- Ж/д путь
-
Функция Описание RailwayTrack getTrack(int index) Возвращает соединенный со стрелкой путь с заданным номером.
index — индекс путиList<RailwayTrack> getTracks() Возвращает список путей, соединенных со стрелкой. List<RailwayTrack> getAvailableTracks(RailwayTrack source) Возвращает список всех путей, на которые по этой стрелке может перейти состав, если он заходит на стрелку с заданного пути.
source — путь, с которого состав заходит на стрелкуvoid connectTracks(RailwayTrack source, RailwayTrack target) Стрелка переводится в состояние (одно из состояний, если возможны несколько), которое позволяет составу перейти с одного заданного пути на другой заданный путь.
source — путь, с которого состав заходит на стрелку
target — путь, на который состав выходит после стрелкиboolean stateExists(RailwayTrack track source, RailwayTrack target) Проверяет, возможно ли такое состояние стрелки, которое позволит составу перейти с одного заданного пути на другой заданный путь. Если возможно, функция возвращает true; в противном случае — возвращает false.
source — путь, с которого состав должен зайти на стрелку
target — путь, на который состав должен выйти после стрелкиboolean trackStarts(RailwayTrack track) Возвращает true, если переданный в качестве аргумента путь начинается в данной стрелке, и false — если он в ней заканчивается.
track — путьRailwayTrack nextTrack(RailwayTrack source) Возвращает следующий путь, при условии того, что состав приезжает на стрелку с заданного пути source. Если текущее состояние стрелки не позволяет осуществлять движение с заданного пути, то функция возвращает следующий путь в следующем возможном состоянии (для заданного пути), не меняя при этом текущее состояние.
source — путь, по которому состав приезжает на стрелкуRailwayTrack currentStateNextTrack(RailwayTrack source) С учетом текущего состояния стрелки возвращает следующий путь при условии того, что состав приезжает на стрелку с заданного пути.
source — путь, по которому состав приезжает на стрелкуvoid toggle() Переключает стрелку в следующее состояние. int getToggleCount() Возвращает количество переключений данной стрелки, как выполненных во время автоматической маршрутизации поезда, так и ручных, инициированных пользователем в ходе выполнения модели. boolean trackStarts(RailwayTrack track) Проверяет, является ли движение через стрелку с переданного в качестве аргумента пути “пошерстным” или “противошерстным”. Если путь будет не соединен со стрелкой, то выдаст информацию об ошибке. Возвращает true, если движение “пошерстное” и false, если “противошерстное”.
track — путь, по которому состав приезжает на стрелку - Местоположение
-
Функция Описание RailwayNetwork getRailYard() Возвращает ж/д узел, которому принадлежит эта стрелка, или null, если стрелка не является частью ж/д узла. double getX() Возвращает X-координату стрелки. double getY() Возвращает Y-координату стрелки. double getZ() Возвращает Z-координату стрелки. - Размеры
-
Функция Описание double getRadius() Возвращает радиус стрелки. void setRadius(double radius) Задает радиус стрелки.
radius — новый радиус стрелки - Уровень
-
Функция Описание Level getLevel() Возвращает уровень, на котором находится стрелка. - Внешний вид
-
Функция Описание Paint getColor() Возвращает цвет (или текстуру) стрелки. Color getSelectionColor() Возвращает цвет линии, анимирующей текущее положение стрелки во время выполнения модели. void setColor(Paint color) Задает цвет (или текстуру) стрелки.
color — новый цвет (или текстура) стрелкиvoid setSelectionColor(Color color) Задает цвет линии, анимирующей текущее положение стрелки во время выполнения модели.
color — цвет, которым выделена стрелка в текущем положении - Видимость
-
Функция Описание boolean isVisible() Проверяет, видна ли стрелка. Если true, стрелка видна, если false — нет. void setVisible(boolean v) Задает видимость стрелки.
v — видимость стрелки. Если true — стрелка видна, если false — нет - Удаление
-
Функция Описание void remove() Удаляет стрелку из презентации. Если стрелка не является частью презентации, функция не выполняет ничего. Обратите внимание, что удаление из презентации не обязательно подразумевает удаление из логики модели, поскольку логические сети и маршруты могли быть заданы еще до удаления элемента и не исчезают. - Создание стрелки с помощью кода
-
Функция Описание void setTracks(RailwayTrack... tracks) Данная функция используется, чтобы задать ж/д пути, соединенные со стрелкой, при построении ж/д узла с помощью кода. Вы можете передать любое количество путей в качестве аргументов.
tracks — пути, соединенные со стрелкойvoid setAllToAllType() Задает тип созданной стрелки: Универсальная. Эта функция используется только при создании стрелки с помощью кода. void setSingleSlipType(RailwayTrack track) Задает тип созданной стрелки: Простая английская. Назначает заданный путь в качестве переключающего пути. Эта функция используется только при создании стрелки с помощью кода.
track — путь, который будет считаться переключающимvoid setDoubleSlipType() Задает тип созданной стрелки: Английская. Эта функция используется только при создании стрелки с помощью кода.
-
Как мы можем улучшить эту статью?
-