Тема: Показати кольорами великі, малі і середні числа
В мене є курс валют
І мене потрібно найслабшу валюту показати червоним кольором а найсильнішу зеленим і середню жовтим
Для цього я вибрав модель кольорів RGB вона сама зручна (на мій погляд) бо 1 і 2 колір створить 3 жовтий (наприклад якщо розбити 256 на 140 i 116 (бо 256 = 140 + 116) то виходить жовтий колір)
Я шукаю мінімальне і максимальне число
[code=С++]
if(element > maxElement)
maxElement = element;
if(element < minElement)
minElement = element;
[/code]
Віднімаю мінімальне від максимального для отримання числа з якого я буду брати відсотки
[code=С++]num = maxElement - minElement;[/code]
Беру відсотки
а = число з якого будемо брати відсотки
б = від якого число
відсотки=(б*100)/а
[code=С++]interest = ( model->index(i, 2).data().toDouble() * 100. ) / num;[/code]
А дальше я заплутався
виходить є два кольори по 256 і 256 але мені потрібно щоб вони були залежні і не створювали ін. кольори крім червоного зеленого і жовтого, тому в мене є одне число 256 і все, а його потрібно поділити між двома кольорами.
Як перетворити відсотки від числа до відсотків кольору, наприклад 42,85%
я зробив так формулу
red = (42,85 * 2,56 *100) / 256
green = 256 - red
2,56 - тому що 100* 2,56 = 256
[code=С++]
r = ((interest * 100.) / 256.);
g = 256 - r;
[/code]
І в результаті в мене все зелене, практично все крім Золото, Платина, Паладiй воно чогось жовтого відтінку
Допоможіть скласти формули за якими можна розрахувати колір, тобто в нас є мінімальна і максимальна валюта і по цих даних потрібно зробити червоний колір для найслабшої, жовтий для середньої і зелений для сильної валюти, все це робиться в моделі RGB