Блок PedSettings позволяет задавать общие параметры, относящиеся ко всем блокам Пешеходной библиотеки, и настраивать модель для конкретной задачи с целью получения максимальной производительности.
В этом блоке вы можете задать расстояние, которое должны будут соблюдать между собой пешеходы. Такая опция будет полезной при моделировании пешеходных потоков и областей обслуживания во время пандемии или для моделирования пешеходных потоков в местности с низкой плотностью населения.
Во время движения пешеходы будут стараться соблюдать социальную дистанцию между собой за исключением тех случаев, когда плотность пешеходов становится слишком высокой, например, в узких проходах, коридорах и т.д.. Пройдя подобные сложные зоны, пешеходы возобновят соблюдение социальной дистанции.
Во время движения пешеходы не соблюдают социальную дистанцию с другими пешеходами, ожидающими в очередях или областях ожидания.
Члены группы не соблюдают социальную дистанцию между собой во время движения, в очередях и в областях ожидания.
Социальная дистанция не соблюдается между пешеходами, находящимися внутри лифта. Однако, пешеходы будут стараться соблюдать дистанцию при ожидании лифта на уровне (этаже).
Пешеходы в сервисных очередях соблюдают социальную дистанцию по сервисной линии. Если очередь-змейка нарисована так, что расстояние между пешеходами в этой очереди меньше заданной социальной дистанции, то дистанция будет соблюдаться каждым пешеходом только между собой и пешеходами, стоящими непосредственно впереди и позади. Расстояние между очередью и человеком внутри сервиса (servicePoint) не соблюдается.
При входе в область ожидания пешеходы будут занимать такое место, чтобы соблюдалась социальная дистанция. Если плотность пешеходов внутри области ожидания становится слишком высокой, входящие в область пешеходы будут занимать любое свободное место, игнорируя требования социальной дистанции.
- Соблюдать социальную дистанцию
- Выбрав эту опцию, вы сможете задать расстояние между пешеходами, которое они будут стараться соблюдать при движении или ожидании в очереди или области ожидания. Социальная дистанция не будет соблюдаться между пешеходами, находящимися в лифте, пешеходами - членами одной группы, а также между пешеходами, проходящими через очередь и пешеходами из этой очереди.
Синтаксис: boolean enableSocialDistancing
Значение по умолчанию: true - Социальная дистанция
- [Параметр доступен, если выбрана опция Соблюдать социальную дистанцию]
Здесь вы можете задать расстояние в метрах, которое пешеходы соблюдать между собой.Синтаксис: double socialDistance - Временной шаг
- [Параметр недоступен, если выбрана опция Соблюдать социальную дистанцию]
Синхронный шаг моделирования. Значение не может быть равно 0. Присвоение данному параметру малых значений вынуждает пешехода двигаться более точно, но требует более высокой производительности. Рекомендуемое значение: 0.3 секунды. Если выбрана опция Соблюдать социальную дистанцию, шаг моделирования будет равен 0.1 секунды.Имя: timeStep
Тип: double
Изменить значение: set_timeStep(новое значение) - Разрешить выделение пешехода мышью
- Если опция выбрана (true), пользователь может выделить пешехода или снять выделение, щелкнув по нему мышью.
Имя: allowPedestrianSelectionByClick
Тип: boolean
Значение по умолчанию: true
- При выборе пешехода
- Код, выполняемый при выделении пешехода. Вы можете выделить пешехода, щелкнув мышью по его фигуре анимации или программно с помощью функции PedSettings.
Локальная переменная: ped — выделенный пешеход
- При отмене выбора пешехода
- Код, выполняемый при отмене выделения пешехода. Вы можете отменить выделение пешехода, щелкнув мышью в любом месте презентации модели или программно с помощью функции deselect(ped) блока PedSettings.
Локальная переменная: ped — пешеход
- При формировании группы
- Здесь вы можете написать Java код, который будет выполняться в момент окончания формирования новой группы пешеходов.
Локальная переменная: group — группа
- При расформировании группы
- Здесь вы можете написать Java код, который будет выполняться в момент окончания расформирования группы пешеходов.
Локальная переменная: group — группа
- При изменении лидера группы
- Здесь вы можете написать Java код, который будет выполняться в момент смены лидера группы пешеходов.
Локальные переменные:
group — группа
oldLeader — старый лидер группы
newLeader — новый лидер группы - При изменении формы группы
- Здесь вы можете написать Java код, который будет выполняться в момент смены формы (строя) группы пешеходов.
Локальные переменные:
group — группа
GroupFormation oldFormation — старая форма группы
GroupFormation newFormation — новая форма группы - При добавлении пешехода в группу
- Здесь вы можете написать Java код, который будет выполняться в момент добавления пешехода в группу.
Локальные переменные:
ped — пешеход
PedGroup group — группа - При удалении пешехода из группы
- Здесь вы можете написать Java код, который будет выполняться в момент удаления пешехода из группы.
Локальные переменные:
ped — пешеход
PedGroup group — группа
Функция | Описание |
---|---|
double socialDistance() | Возвращает социальную дистанцию между пешеходами в метрах. |
double socialDistance(LengthUnits units) |
Возвращает социальную дистанцию между пешеходами в указанных единицах длины. units — константа, задающая единицу измерения длины |
boolean enableSocialDistance() | Проверяет, включена ли опция Соблюдать социальную дистанцию. Если включена, то функция возвращает true. В противном случае возвращает false. |
int countGroups() | Возвращает количество групп пешеходов в модели. |
int countPeds() | Возвращает количество пешеходов в модели. |
void selectPed(Agent ped) | Выделяет на анимации запущенной модели заданного аргументом пешехода. |
void deselectPed() | Снимает выделение с выделенного в данный момент времени пешехода. |
Agent getSelectedPed() | Возвращает выделенного в текущий момент времени пешехода (если такового нет, то null). |
Set<Agent> getPeds() | Возвращает неизменяемую переменную типа коллекция, содержащую всех пешеходов, находящихся в модели. |
Set<PedGroup> getGroups() | Возвращает неизменяемую переменную типа коллекция, содержащую все группы пешеходов, находящихся в модели. |
double pixelsToMeters(double value) | Преобразовывает заданное аргументом количество пикселей анимации в длину в метрах согласно заданному блоком масштабу анимации. |
double metersToPixels(double value) | Преобразовывает заданную аргументом длину в метрах в длину в количество пикселей анимации согласно заданному блоком масштабу анимации. |
-
Как мы можем улучшить эту статью?
-