我想向我的用户显示他们的表单中有多少(百分之百)符合新标准。我想让他们直观地了解的方式是百分比将被着色。 0%时为0xFF0000(纯红色),100%时为0x00FF00(纯绿色)。沿途每一步计算颜色的最佳方法是什么?
答案 0 :(得分:3)
色彩空间转换(由Tony建议)将为您提供最佳效果。 但是,如果这超出了你想要的范围,我建议一个简单的算法让你变黄(0xFFFF00)50%:
对于最高50%的值,以0xFF0000开头 将0xFF * Percentage / 50添加到绿色组件。
对于50%以上的值,以0xFFFF00开头。
从红色分量中减去0xFF *百分比/ 50。
结果对我的客户来说足够好; - )
答案 1 :(得分:1)
您无需自行计算 - 尝试使用LinearGradient
画笔。 (msdn)
LinearGradientBrush linGrBrush = new LinearGradientBrush(
new Point(0, 10),
new Point(200, 10),
Color.FromArgb(255, 255, 0, 0), // Opaque red
Color.FromArgb(255, 0, 0, 255)); // Opaque blue
Pen pen = new Pen(linGrBrush);
e.Graphics.DrawLine(pen, 0, 10, 200, 10);
e.Graphics.FillEllipse(linGrBrush, 0, 30, 200, 100);
e.Graphics.FillRectangle(linGrBrush, 0, 155, 500, 30);