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

C# 根据导入的十进制值应用颜色值,c#,C#,首先,我对C#很陌生 我有一个大约300万行的文件。每行包含一个介于0和1(小数点后6位)之间的数字 我想做的是为每个数字创建一个RGB值,这取决于该数字位于0和1之间的位置。例如,0将是绿色,1将是红色,并且介于之间的所有数字的RGB值将介于绿色和红色之间,创建该值以表示颜色比例向下的距离 如何计算RGB值?您需要导出一种算法,将十进制值转换为三个独立的值,即红色、绿色和蓝色。然后使用内置的颜色类型使用这些值创建颜色() 如何处理这些颜色取决于您。嗯,最简单的方法是: int red = (i

首先,我对C#很陌生

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

我想做的是为每个数字创建一个RGB值,这取决于该数字位于0和1之间的位置。例如,0将是绿色,1将是红色,并且介于之间的所有数字的RGB值将介于绿色和红色之间,创建该值以表示颜色比例向下的距离


如何计算RGB值?

您需要导出一种算法,将十进制值转换为三个独立的值,即红色、绿色和蓝色。然后使用内置的颜色类型使用这些值创建颜色()


如何处理这些颜色取决于您。

嗯,最简单的方法是:

int red = (int)(Num * 255);
int green = (int)((1 - Num) * 255);
int blue = 0;
这样你可以得到一个介于红色和绿色之间的渐变,绿色为0,红色为1

不过,听起来您希望为“好”到“坏”的值生成一个可视比例。人们通常也希望把黄色放在中间,表示“Okayy”值。下面是代码:

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;
}
int红色、绿色、蓝色;
如果(数值<0.5)
{
红色=(整数)(数字*2*255);
绿色=255;
蓝色=0;
}
其他的
{
红色=255;
绿色=(整数)((2-2*Num)*255);
蓝色=0;
}

太好了,谢谢!您知道如何计算列表“Num”中小于1的最大值吗?
nums.Max(x=>x<1)应该这样做。为此,我收到错误消息“decimal”不包含“Max.”的定义。。你知道这是什么意思吗?等等,你想要什么?请您再解释一下好吗?数字列表“Num”包含大于1的值。。我的想法是找到等于或小于1的最高值,并将其设为红色值,然后再提取其他所有值。这有意义吗?我冒昧地整理了一下你的问题。希望你不介意!为什么要投否决票?因为我没有给他写密码?所以不是为了回答家庭作业问题。