根据导入的十进制值应用颜色值

时间:2016-05-10 15:08:51

标签: c#

首先,我是C#的新手!

我有一个大约300万行的文件。每行包含一个介于0和1之间的数字(小数点后6位)。

我想要做的是为每个数字创建一个RGB值,具体取决于0到1之间的数字。例如,0将为绿色,1将为红色,并且之间的所有数字将具有绿色和红色之间的RGB值,创建以表示其在色标下方的距离。

如何计算RGB值?

2 个答案:

答案 0 :(得分:2)

嗯,最简单的方法是:

int red = (int)(Num * 255);
int green = (int)((1 - Num) * 255);
int blue = 0;

通过这种方式,您可以获得红色和绿色之间的渐变,绿色为0,红色为1。

Green - Red gradient

然而,听起来你想要为“好”到“坏”之间的值产生视觉比例。因为人们通常也想在中间放置黄色来表示“好看”的价值观。这是代码:

int red, green, blue;
if ( Num < 0.5 )
{
    red = (int)(Num * 2 * 255);
    green = 255;
    blue = 0;
}
else
{
    red = 255;
    green = (int)((2 - 2 * Num) * 255);
    blue = 0;
}

enter image description here

答案 1 :(得分:-2)

您需要派生算法将您的小数值转换为三个单独的值,红色,绿色和蓝色。然后使用内置的颜色类型使用这些值(https://msdn.microsoft.com/en-us/library/cce5h557(v=vs.110).aspx)创建颜色。

你对颜色的处理取决于你。