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

Репликация фигур

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

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

Реплицированными могут быть не только фигуры презентации, но также элементы управления и графики. Иногда вам может понадобиться создать массив одинаковых элементов управления, чтобы, например, изменить массив каких-то одинаковых объектов во время выполнения модели. Репликация элементов управления поможет вам не терять время на рисование и сделает вашу модель расширяемой. Взгляните на демонстрационную модель, которая содержит реплицированную кнопку: она используется, чтобы изменять цвет заливки реплицированной фигуры. Кроме того, количество копий кнопки и фигуры можно динамически изменять с помощью бегунка.

Пожалуйста, обратите внимание, способ работы с реплицированными фигурами будет отличаться в зависимости от того, будет ли для фигур разрешено программное управление или нет.

  • Фигуры, для которых разрешено программное управление, представляют собой объекты Java класса ReplicatedShape. Они доступны как члены типа агентов. Отдельные элементы реплицированной фигуры доступны с помощью функции get(), которая принимает порядковый номер (нумерация начинается с 0) фигуры в векторе реплицированных фигур в качестве аргумента. Вы можете работать с такими фигурами с помощью методов классов соответствующих фигур.
    Например, чтобы изменить X-координату второго экземпляра из вектора реплицированных фигур oval1, напишите: oval1.get(1).setX(27).
  • Изменять свойства реплицированных фигур, для которых программное управление запрещено, во время работы модели нельзя. Поэтому если вы хотите динамически управлять реплицированной фигурой, разрешите программное управление ею. Хотя изменять свойства реплицированных фигур, для которых программное управление запрещено, и нельзя, AnyLogic создает методы, позволяющие получать информацию о свойствах фигуры. Эти методы называются в соответствии со следующим синтаксическим правилом:
    тип свойства getShape+имя динамического свойства(имя фигуры, порядковый номер фигуры )

    Например:

    getShapeX(oval1, 1)
    getShapeLineWidth(rectangle, 17)
Как мы можем улучшить эту статью?