繁体   English   中英

生成颜色渐变

[英]Generating Color Gradient

我想向我的用户显示他们的表格中有多少(符合百分比)符合新标准。 我想让他们直观地知道的方式是百分比颜色。 对于100%,它将是0xFF0000(纯红色),对于100%,它将是0x00FF00(纯绿色)。 计算过程中每个步骤的颜色的最佳方法是什么?

色彩空间转换(由Tony建议)将为您带来最佳效果。 但是,如果这超出了您所寻找的范围,我建议使用一种简单的算法,使您黄(0xFFFF00)达到50%:

对于高达50%的值,从0xFF0000开始。
将0xFF *百分比/ 50添加到绿色部分。

对于50%以上的值,从0xFFFF00开始。
从红色分量中减去0xFF *百分比/ 50。

结果对我的客户来说足够好;-)

您不需要自己计算-尝试使用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);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM