[英]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.