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

标签 c#

首先,我是 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。

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

关于c# - 根据导入的十进制值应用颜色值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37142419/

相关文章:

c# - 在 ASP.NET 中发布网站时出现 System.AggregateException 错误

c# - 如何使用 Project Oxford 的语音 API 将解决方案实现到 WPF 应用程序中?

c# - 如果我的函数在逻辑上只返回自然数,我应该使用 uint 吗?

c# - WebAPI OData $Skip 自定义 IQueryable 双应用

c# - 如何修改 dijkstra 算法以找到所有可能的路径?

c# - 如何声明 Linq 表达式变量以便将其作为 dbParameter 处理

c# - TextBox 允许输入文本但不显示插入符号

c# - 显示 MvxDialogFragment 的简单方法是什么?

c# - 配置 autofac 容器

c# - 将字节数组上传到MYSQL