Назначение цветов Java - PullRequest
       3

Назначение цветов Java

0 голосов
/ 27 декабря 2011

Я создаю приложение на Java, где различные участки земли состоят из набора участков.Я хочу покрасить разные пятна разными цветами.Моя карта представляет посылки с патчами.Однако два патча могут иметь общие посылки.В этом случае я бы хотел окрасить эти участки каким-нибудь промежуточным цветом (смесь цветов двух участков).Поскольку я не знаю, сколько патчей будет выбрано, я должен назначить случайные цвета для тех, кто в цикле.Затем я должен разрешить цвета для этих пересекающихся посылок.Любая идея о наилучшем способе сделать это в Java?

Ответы [ 2 ]

1 голос
/ 27 декабря 2011

Я не знаю очевидного решения этой проблемы, но я полагаю, вы можете использовать средние компоненты RGB.Например, у вас есть два цвета в нотации RGB: A (100,0,0) и B (0,100,0).Полученный цвет будет C (50, 50, 0).

Примечание: в этом случае вы сохраняете инвариант «Пересечение между двумя равными цветами будет одного цвета»

1 голос
/ 27 декабря 2011

Для смешивания цветов вы можете получить отдельные значения R, G, B с помощью либо getRed (), getBlue () и т. Д., Либо getColorComponents (), затем взять среднее значение для каждого и создать новый цвет. Вы также можете усреднить значения HSB. Вы также можете играть с альфа (прозрачность), рисуя каждый оригинальный цвет с альфа 0,5. Однако в какой-то момент все эти тонкие сочетания становятся сложными для пользователя, чтобы понять. Вместо этого вы можете использовать шаблон (например, полосы) с оригинальными цветами.

Я экспериментировал со многими способами выбора «хороших» случайных цветов, и не добился большого успеха. Лучшая техника использовала значения HSB. Допустим, вам нужно 5 цветов. Разделите 360 градусов на 5 и выберите оттенки «вокруг» цветового круга под этими углами. Это работает хорошо. если вам нравятся действительно яркие, полностью насыщенные цвета.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...