PedArea

Задает область, определяющую правила и/или накладывающую
ограничения
на
скорость пешеходов. Позволяет изменять скорость пешеходов и задавать их
максимальную скорость.
Также позволяет задавать “движущиеся
этажи”, для которых можно
задавать
направление и скорость движения (эта функция используется при
моделировании
эскалаторов и движущихся дорожек).
Параметры класса
- Класс пешехода
- Класс пешехода, проходящего сквозь объект. Он должен быть
унаследован от класса Ped. Если
Вы используете
собственный класс для создания пешеходов, то рекомендуем Вам указать
его здесь, чтобы иметь возможность явно обращаться к собственным полям
этого класса в динамических параметрах. В противном случае собственные
поля класса будут недоступны.
Синтаксис T
extends Ped
Значение по
умолчанию Ped
Параметры
- Фигура (овал, прямоугольник, замкнутая ломаная)
- Фигура (овал, прямоугольник, замкнутая ломаная), задающая
геометрическую форму области.
Синтаксис Shape
areaShape
Значение по умолчанию null
- Этаж (PedGround) [динамический]
- Этаж, на котором расположена область.
Синтаксис PedGround
ground
- Действие при входе [динамический]
- Код, выполняемый, когда пешеход попадает в область.
Синтаксис void onEnter
Локальная
переменная: T ped
- пешеход.
- Действие при выходе [динамический]
- Код, выполняемый, когда пешеход покидает область.
Синтаксис void onExit
Локальная
переменная: T ped
-
пешеход.
- Скорость ограничена
- Если опция выбрана (true), то внутри области допустимо
ограничение скорости пешехода.
Синтаксис boolean
speedIsLimited
Значение по умолчанию false
- Максимальная скорость, м/с
- [Виден, если выбран параметр Скорость
ограничена] Максимально допустимая скорость
передвижения
пешеходов внутри области, в м/с. Для пешеходов, передвигающихся со
скоростью, превышающей указанное значение, скорость будет уменьшена.
Скорости остальных пешеходов не изменятся.
Синтаксис double
maximumSpeed
- Скорость умножается
- Если опция выбрана (true), то скорость пешеходов внутри
области будет умножена на заданный коэффициент.
Используйте этот параметр при моделировании лестниц и прочих областей,
находясь внутри которых пешеходы меняют свою скорость.
Синтаксис
boolean speedIsMultiplied
Значение по умолчанию false
- На коэффициент
- [Виден, если выбран параметр Скорость
умножается] Коэффициент, на который будет умножена
скорость.
Применяется ко всем пешеходам, находящимся внутри области. Если
значение равно 1.0, то ничего не происходит.
Синтаксис double
speedFactor
Значение по умолчанию 1.0
- Движущийся этаж
- Если опция выбрана (true), то заданная область
представляет
собой «движущийся этаж» (эскалаторы и т.п.).
Синтаксис boolean
groundIsMoving
Значение по умолчанию false
- Со скоростью, м/с
- [Виден, если выбран параметр Движущийся
этаж]
Скорость движущегося этажа, задается в м/с.
Синтаксис double
groundSpeed
Значение по умолчанию 1.0
- Направление, в радианах
- [Виден, если выбран параметр Движущийся
этаж] Направление движущегося этажа, задается в радианах.
Синтаксис double
groundDirection
Значение по умолчанию
Восток
- Разрешить управление доступом
- Если опция выбрана (true), то позволяет закрывать область на вход. Пешеходы, находящиеся
за
границей области, не смогут попасть внутрь нее. Пешеходы, находящиеся
внутри области, по-прежнему смогут ее покинуть.
Синтаксис boolean
enableAccessControl
Значение по умолчанию false
- Движение отклоняется
- Если опция выбрана (true), то область будет изменять направление
движения пешеходов. Вы сможете задавать угол отклонения от
первоначального направления движения пешехода, таким образом, что при
движении в этой области пешеходы будут придерживаться левой или правой
стороны.
Синтаксис boolean keepDirection
Значение по умолчанию false
- Отклонение движения, в радианах
- [Виден, если установлен флажок Движение отклоняется]
Угол
отклонения от первоначального направления движения пешехода.
Вы можете либо выбрать
влево
или вправо
из выпадающего
списка или ввести выражение, возвращающее значение отклонения в
радианах в поле параметра keepDirectionAngle
на странице Параметры
панели свойств этого объекта PedArea
(отрицательные значения будут означать отклонение влево, а
положительные - вправо.).
Синтаксис double keepDirectionAngle
Значение по умолчанию 0.1 (влево)
- Z плоскость (число или 3D линия)
- Здесь Вы можете задать расположение плоскости, на которой находится данная область в пространстве.
Если эта плоскость располагается горизонтально, то Вам нужно будет
просто ввести в этом поле значение ее Z-координаты (в метрах).
Это обычно требуется тогда, когда в Вашей модели есть несколько
этажей, располагающихся на разных высотах. Если же вся динамика модели
проистекает в одной плоскости, то смысла явно задавать для областей
Z-координаты нет.
Если же плоскость области наклонена (например, область задает
эскалатор, соединяющий два этажа), то
Вам нужно будет задать угол ее наклона с помощью 3D
линии. В этом случае нужно будет вначале нарисовать на презентации
линию и указать, что она отображается на 3D сцене. Расположите
линию требуемым образом в плоскости
XY (например, в случае эскалатора - от начала эскалатора к его
концу) и задайте различные Z координаты для ее точек в полях Z и dZ на странице ее свойств Дополнительные, так чтобы эта линия лежала в нужной Вам плоскости. Задав таким образом линию, укажите ее имя в этом поле. Тогда во время
работы модели область будет расположена в пространстве сцены трехмерной
анимации согласно наклону, заданному этой линией.
Синтаксис: Object z
Значение по умолчанию: null
Функции
double area()
- Возвращает площадь
области,
в квадратных метрах.
double density()
- Возвращает
среднюю
плотность пешеходов в области, измеряемую в количестве пешеходов на
квадратный метр.
double[]
getRandomInternalPoint() -
Выбирает
случайную точку внутри области.
Возвращает массив вещественных
чисел типа double, содержащий:
0 - X
координата модели
1 - Y
координата модели
2 - X
координата модели в единицах измерения длины анимации
3 - Y
координата модели в единицах измерения длины анимации
boolean isInside(T ped)
- Проверяет,
находится
ли пешеход внутри области.
Этот метод возвращает значение, которое может быть использовано в
качестве
условия для методов
tellInside
и
tellOutside, когда
объекты
PedSource,
PedSink,
PedExit и
PedEnter находятся
частично внутри
области.
Предупреждение!
Этот метод
требует больших временных затрат и может вызвать снижение
производительности
модели.
boolean
isOpen()
- Возвращает true, если область открыта, иначе возвращает
false.
boolean setOpen(boolean sOpen)
-
Управляет
границей области, делая ее прозрачной для пешехода, находящегося вне
области.
Установка параметра в true открывает область, в false –
закрывает ее.
int size() -
Возвращает общее количество
пешеходов, находящихся внутри области.
void tellInside(T ped)-
Сообщает области,
что
пешеход находится внутри области. Этот метод можно использовать в
блоках
PedSource и PedEnter, когда
позиция входа
находится
внутри области.
void tellOutside(T ped)-
Сообщает
области, что
пешеход находится вне области. Этот метод можно использовать в блоках PedSource и PedExit, когда
позиция выхода
находится вне
области.