Как мне найти цвет, который находится между двумя другими цветами? - PullRequest
0 голосов
/ 11 июня 2009

Я назначаю каждому цвету числовое значение. Например:

Color.red: 12 
Color.Blue: 6

Мне нужно найти цвет между двумя цветами (например, красный и синий). Но как? Я пробовал это,

(Color.red+color.blue)/2=> (12 + 6)/2 = 9

9 соответствует Color.yellow

Ответы [ 3 ]

5 голосов
/ 11 июня 2009

Вам нужно будет использовать RGB-значения цвета и интерполировать их. Использование одного значения не даст вам необходимой дискриминации.

Ответ, который цитирует yx Рисование линии цветом градиента выглядит как хорошее место для начала

1 голос
/ 11 июня 2009

Цвета обычно представлены в виде шестизначного шестнадцатеричного значения для компьютеров с красным, зеленым и синим, состоящими из двух цифр в каждом порядке, например. FF0000 - красный, 00FF00 - синий, 0000FF - зеленый. Вы должны подумать о том, как перемещаться между такими значениями.

У Майкла Лейгебера есть прекрасный алгоритм цветового перехода в JavaScript , который вы можете скачать, чтобы увидеть, как он реализовал перемещение между двумя значениями.

0 голосов
/ 28 июня 2015

Эта проблема требует разделения альфа-, красного, зеленого и синего компонентов каждого цвета, определения среднего значения каждого из них и создания нового цвета:

    Color first = Color.Red;
    Color second = Color.Blue;


    byte r = (byte)((first.R + second.R) / (byte)2);
    byte g = (byte)((first.G + second.G) / (byte)2);
    byte b = (byte)((first.B + second.B) / (byte)2);
    byte a = (byte)((first.A + second.A) / (byte)2);

    Color mix = Color.FromArgb(a, r, g, b);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...