AnyLogic
Развернуть
Размер шрифта

Персонализация пешеходов

Чтобы создать собственный тип пешехода

  1. Перетащите элемент Тип пешехода из палитры Пешеходной библиотеки на диаграмму типа агента.

  2. Появится окно мастера создания нового агента. Введите имя типа (например, Passenger). Щелкните мышью по кнопке Далее.

  3. Выберите подходящую фигуру 2D или 3D анимации. Если вы хотите добавить анимацию позже или не добавлять ее совсем, выберите Нет для типа анимации.

  4. Здесь вы можете добавить и настроить параметры типа пешехода. Щелкните мышью кнопку < добавить... > в таблице Параметры, введите имя параметра, выберите его Тип из выпадающего списка и задайте Значение по умолчанию при необходимости. Чтобы удалить параметр из списка, щелкните по кнопке внизу таблицы.

  5. Щелкните мышью по кнопке Готово. Откроется диаграмма Passenger. Вы можете добавить сюда дополнительно параметры, переменные, диаграмму состояний, диаграмму процесса и т.п.

Чтобы создать пешеходов собственного типа, вам нужно выбрать этот тип в параметре Новый пешеход блока PedSource. Тогда пешеходы в моделируемом процессе будут иметь тип Passenger, и блоки в диаграмме процесса позволят вам явно обращаться к дополнительной функциональности типа Passenger через локальную переменную Ped.

Например, если вы знаете, что все пешеходы, которые проходят через блок PedWait, принадлежат типу Passenger, то вам следует выбрать Passenger в поле Новый пешеход блока PedSource. Затем вы сможете сохранить время, которое пешеход будет ждать, записав код ped.timeArrived = time() в действии При входе блока PedWait и ped.waitingTime += time()-ped.timeArrived в его же действии При выходе.

Обратите внимание, что если некоторые пешеходы в потоке имеют тип Customer, а другие, скажем, тип Staff, то вам следует оставить в поле Тип пешехода значение по умолчанию, т.е. Ped, и проанализировать тип пешехода вручную, например, следующим образом:

if(agent instanceof Passenger) ((Passenger)ped)waitingTime += time() - ((Passenger)ped).timeArrived
Как мы можем улучшить эту статью?