AnyLogic позволяет пользователям выбирать любые цвета заливки для своих графических элементов. Это может быть сделано с помощью диалога Цвета.
Диалоговое окно Цвета используется для выбора какого-то нестандартного (не представленного в списке наиболее часто используемых цветов) цвета, например, в качестве Цвета заливки или Цвета линии фигуры или какого-то другого элемента модели.
Чтобы выбрать нестандартный цвет с помощью диалогового окна Цвета
- Откройте выпадающий список, содержащий наиболее часто используемые цвета, щелкнув мышью внутри соответствующего элемента управления (например, Цвет заливки или Цвет линии):
- Щелкните по ссылке Другие цвета.... Откроется диалоговое окно Цвета.
- Выберите цвет с помощью предлагаемых элементов управления (они описаны ниже).
- Когда закончите, щелкните мышью по кнопке OK, чтобы применить сделанные изменения.
Диалоговое окно Цвета содержит две вкладки (Обычные и Спектр), а также общую область, расположенную внутри окна.
Вкладка Обычные позволяет пользователю выбирать цвет из представленной палитры стандартных цветов. При наведении мышью на цвет в палитре отображается подсказка, показывающая символьное имя данного цвета.
Вкладка Спектр позволяет задавать нестандартные цвета. Вы можете выбрать любой цвет из спектра, перетаскивая "прицел" в области Цвета. Или же вы можете явно задать значения цветовых компонент цвета (Красный, Зеленый и Синий) с помощью расположенных ниже элементов управления (значения задаются в диапазоне от 0 до 255).
Общая область диалога содержит следующие элементы управления:
Область просмотра в правом нижнем углу отображает цвет, который используется в данный момент (Текущий) и цвет, выбранный в палитре диалога (Новый).
Выбранный цвет — Отображает строку кода, задающую выбранный в текущий момент цвет: это будет либо имя цвета (если активна вкладка Обычные), либо конструктор класса цвета (если активна вкладка Спектр).
Копировать — С помощью этой кнопки вы можете копировать строку, задающую выбранный в текущий момент времени цвет, из поля Выбранный цвет в Буфер обмена. Позже вы можете вставить эту строку, например, в соответствующее динамическое свойство какой-либо другой фигуры, чтобы эта фигура рисовалась этим же цветом.
Прозрачность — Бегунок задает прозрачность цвета. Текущее значение прозрачности отображается в расположенном справа от бегунка элементе управления. Значение 255 соответствует полностью непрозрачному цвету, 0 — абсолютно прозрачному.
Цвет можно задать 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.
-
Как мы можем улучшить эту статью?
-