【发布时间】:2023-12-06 20:40:02
【问题描述】:
将百分比转换为从绿色 (100%) 到红色 (0%) 的颜色(其中黄色为 50%)的最简单方法是什么?
我使用的是普通的 32 位 RGB - 所以每个分量都是 0 到 255 之间的整数。我在 C# 中执行此操作,但我想对于这样的问题,语言并不那么重要。
根据 Marius 和 Andy 的回答,我正在使用以下解决方案:
double red = (percent < 50) ? 255 : 256 - (percent - 50) * 5.12;
double green = (percent > 50) ? 255 : percent * 5.12;
var color = Color.FromArgb(255, (byte)red, (byte)green, 0);
完美运行 - 我必须从 Marius 解决方案中进行的唯一调整是使用 256,因为 (255 - (percent - 50) * 5.12 在 100% 时产生 -1,由于某种原因在 Silverlight (-1, 255, 0) -> 黄色 ...
【问题讨论】: