Я пытаюсь создать метод, который принимает случайное значение цвета, а затем проверьте, к каким основным цветам он ближе всего.Категоризировать случайный цвет в один из основных цветов Windows Phone
Я полагаю, я должен сравнить его RGB-значения и увидеть, где он находится в пределах этих основных цветов, а затем установить его как красный, желтый или синий и т.д.
Что такое лучший способ сделать это? Благодаря
EDIT Этот вопрос помечен как дубликат, но я проверил другой ответ указанного дубликата вопроса, но она не дает ответа я после.
используя формулу
d = sqrt((r2-r1)^2 + (g2-g1)^2 + (b2-b1)^2)
иногда производит
то же значение для различных цветов. Например, введите цвет ввода R170 : G0 : B255
. Расстояния от белого R255 : G255 : B255
и красного R255 : G0 : B0
производят (int) 269 по формуле. Итак, какой цвет ближе, красный или белый? Я удалил черный и белый из списка, но проблема по-прежнему возникает для некоторых других цветов.
Я сравниваю с несколькими цветами i.e: черный, белый, красный, известь. синий, желтый, голубой. пурпурный и серый, как указано в таблице цветов RGB здесь. quicktables.com/web/color/RGB_Color.htm
Я бы рассматривал его как вектор и находил величину от каждой полярности (0,1,0), (1,0,0), (0,0,1), (см. [Ссылка] (http: /farside.ph.utexas.edu/teaching/301/lectures/node28.html)) – Sayse
(Выше должно быть 255, а не 1) – Sayse
хорошее предложение .. позволяет посмотреть, могу ли я что-то кодировать по этой идее. – PutraKg