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

Цвета

AnyLogic позволяет пользователям выбирать любые цвета заливки для своих графических элементов. Это может быть сделано с помощью диалога Цвета.

Диалог Цвета

Диалоговое окно Цвета используется для выбора какого-то нестандартного (не представленного в списке наиболее часто используемых цветов) цвета, например, в качестве Цвета заливки или Цвета линии фигуры или какого-то другого элемента модели.

Чтобы выбрать нестандартный цвет с помощью диалогового окна Цвета

  1. Откройте выпадающий список, содержащий наиболее часто используемые цвета, щелкнув мышью внутри соответствующего элемента управления (например, Цвет заливки или Цвет линии):

  2. Щелкните по ссылке Другие цвета.... Откроется диалоговое окно Цвета.
  3. Выберите цвет с помощью предлагаемых элементов управления (они описаны ниже).
  4. Когда закончите, щелкните мышью по кнопке OK, чтобы применить сделанные изменения.

Диалоговое окно Цвета содержит две вкладки (Обычные и Спектр), а также общую область, расположенную внутри окна.

Вкладка Обычные

Вкладка Обычные позволяет пользователю выбирать цвет из представленной палитры стандартных цветов. При наведении мышью на цвет в палитре отображается подсказка, показывающая символьное имя данного цвета.

Вкладка Спектр

Вкладка Спектр позволяет задавать нестандартные цвета. Вы можете выбрать любой цвет из спектра, перетаскивая "прицел" в области Цвета. Или же вы можете явно задать значения цветовых компонент цвета (Красный, Зеленый и Синий) с помощью расположенных ниже элементов управления (значения задаются в диапазоне от 0 до 255).

Общая область диалога содержит следующие элементы управления:

Область просмотра в правом нижнем углу отображает цвет, который используется в данный момент (Текущий) и цвет, выбранный в палитре диалога (Новый).
Выбранный цвет — Отображает строку кода, задающую выбранный в текущий момент цвет: это будет либо имя цвета (если активна вкладка Обычные), либо конструктор класса цвета (если активна вкладка Спектр).
Копировать — С помощью этой кнопки вы можете копировать строку, задающую выбранный в текущий момент времени цвет, из поля Выбранный цвет в Буфер обмена. Позже вы можете вставить эту строку, например, в соответствующее динамическое свойство какой-либо другой фигуры, чтобы эта фигура рисовалась этим же цветом.
Прозрачность — Бегунок задает прозрачность цвета. Текущее значение прозрачности отображается в расположенном справа от бегунка элементе управления. Значение 255 соответствует полностью непрозрачному цвету, 0 — абсолютно прозрачному.

Чтобы задать цвет Java выражением

Цвет можно задать Java выражением в поле Выбранный цвет.

Допустимы следующие синтаксисы:

  • Цветовые константы AnyLogic red, magenta, dodgerBlue и другие, полный список здесь
  • Java конструктор:
    • new Color(int r, int g, int b) — Создает непрозрачный sRGB цвет с заданными значениями красного, зеленого и синего в диапазоне (0 — 255).
    • new Color(int r, int g, int b, int a) — Создает sRGB цвет с заданными значениями красного, зеленого, синего и альфа в диапазоне (0 — 255). Значение альфа задает прозрачность: 0 задает полностью прозрачный цвет, 255 задает непрозрачный цвет.
  • Формат компонентов цвета:
    • Серия значений типа int в формате rrr ggg bbb, значение каждого компонента должно находиться в диапазоне 0 — 255. Пример: 120 37 0
    • Серия значений типа float в формате r g b, значение каждого компонента должно находиться в диапазоне 0.0 — 1.0. Пример: 0.5 1 0.2
    • Шестнадцатеричные значения в формате #rrggbb и #aarrggbb, значения каждой шестнадцатеричной пары xx должны находиться в диапазоне 00 — ff. Пример: #00ff00 — зеленый цвет.

Наиболее популярные цвета приведены на закладке диалога Обычные (см. рисунок ниже). При наведении мышью на цвет в палитре отображается подсказка, показывающая кодовое имя данного цвета.

Если же вы хотите выбрать какой-то другой цвет, вы можете сделать это на закладке Спектр. Вы можете выбрать любой цвет из спектра, перетаскивая "прицел" в области Цвета. Или же вы можете явно задать значения цветовых компонент цвета (Красный, Зеленый и Синий) с помощью расположенных ниже элементов управления (значения задаются в диапазоне от 0 до 255).

Набор стандартных цветов (как они показаны в диалоге Цвета)

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

Приведенная ниже таблица перечисляет имена констант для всех стандартных цветов, приведенных на закладке Обычные диалога Цвета. Найти соответствующее имя константы для интересующего вас цвета в таблице можно с помощью индексов (A..J, 1..14).

Цветовые константы

A B C D E F G H I J
1 black darkGray dimGray gray silver lightGrey gainsboro whiteSmoke white red
2 darkRed maroon fireBrick brown indianRed lightCoral rosyBrown snow mistyRose salmon
3 tomato darkSalmon coral orangeRed lightSalmon feldspar sienna seaShell saddleBrown chocolate
4 sandyBrown peachPuff peru linen bisque darkOrange burlyWood tan antiqueWhite navajoWhite
5 blanchedAlmond papayaWhip moccasin orange wheat oldLace floralWhite darkGoldenRod goldenRod cornsilk
6 gold khaki lemonChiffon paleGoldenRod darkKhaki yellow olive lightGoldenRodYellow lightYellow beige
7 ivory oliveDrab yellowGreen darkOliveGreen greenYellow chartreuse lawnGreen lime green darkGreen
8 limeGreen forestGreen lightGreen paleGreen darkSeaGreen honeyDew seaGreen mediumSeaGreen springGreen mintCream
9 mediumSpringGreen mediumAquaMarine aquamarine turquoise lightSeaGreen mediumTurquoise cyan darkCyan teal darkSlateGray
10 paleTurquoise lightCyan azure darkTurquoise cadetBlue powderBlue lightBlue deepSkyBlue skyBlue lightSkyBlue
11 steelBlue dodgerBlue lightSlateGray slateGray lightSteelBlue cornflowerBlue royalBlue blue mediumBlue darkBlue
12 navy midnightBlue lavender ghostWhite slateBlue lightSlateBlue darkSlateBlue mediumSlateBlue mediumPurple blueViolet
13 indigo darkOrchid darkViolet mediumOrchid magenta darkMagenta purple violet plum thistle
14 orchid violetRed mediumVioletRed deepPink hotPink paleVioletRed lavenderBlush crimson pink lightPink

В дополнение к "классическим" цветам, перечисленным в таблице выше, вы также можете создавать свои собственные цвета с помощью соответствующих конструкторов класса Color.

Чтобы динамически задать такой цвет для какого-то графического элемента, нужно будет написать вызов конструктора, создающего объект нужного вам цвета, например: new Color(79, 41, 214, 0)

Динамическое создание цветов

  • new Color( <красный>, <зеленый>, <синий> ) — создает новый цвет, исходя из заданных значений цветовых компонент; каждое значение должно находиться в интервале [0..255]

    Пример:
    oval.setFillColor(new Color(0, 220, 100) );
  • <образец цвета>.brighter() — создает более светлый вариант данного образца цвета.

    Пример:
    oval.setFillColor(red.brighter());
  • <образец цвета>.darker() — создает более темный вариант данного образца цвета.

    Пример:
    oval.setFillColor(red.darker());

Создание цветов с прозрачностью

Обратите внимание, что на отрисовку прозрачных цветов тратится гораздо больше времени, и поэтому их использование может существенно замедлить скорость выполнения модели.
  • new Color(<красный>, <зеленый>, <синий>, <альфа>) — создает прозрачный цвет, исходя из заданных значений цветовых компонент; каждое значение должно находиться в интервале [0..255]. Аргумент <альфа> отвечает за прозрачность; при значении 0 цвет будет полностью прозрачным, при значении 255 — полностью непрозрачным.

    Пример:
    line.setColor(new Color(0, 0, 100, 30));
  • semiTransparent(Color color) — создает полупрозрачный вариант цвета, заданного либо цветовой константой color, либо вызовом вышеописанного конструктора new Color(<красный>, <зеленый>, <синий>).

    Пример:
    line.setColor(semiTransparent(blue));
  • transparent(Color color, int fraction) — создает полупрозрачный вариант цвета, заданного либо цветовой константой color, либо вызовом вышеописанного конструктора new Color(<красный>, <зеленый>, <синий>). Аргумент fraction задает уровень прозрачности в диапазоне [0..1]; при значении 0 цвет будет полностью прозрачным, при значении 1 — полностью непрозрачным.

    Пример:
    line.setColor(transparent(blue, 0.7));

Динамическое задание невидимости компонентов элемента

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

Пример:
oval.setLineColor(null);

Более подробная информация (на английском языке) доступна в документации по Java классу Color.

Как мы можем улучшить эту статью?