我正在尝试创建一个弧(可变宽度,可变度数 - 可能是整个圆圈),逐渐从一端的红色变为另一端的绿色。我还没想出如何在弧上指定渐变来实现这一目标。
例如,如果您可以想象创建一个圆形温度计,其中测量标记在圆圈上以0到500的不同程度指向。作为一个额外的视觉,我希望测量周长具有渐变颜色,表示仪表温度 - 从冷(绿色)到非常热(红色)。
我已尝试过PathGradientBrush和LinerarGradientBrush(但也许我错过了一些东西)。径向渐变似乎不能满足我的需要。
任何想法都会有所帮助。
感谢。
答案 0 :(得分:3)
此代码将创建一个从红色到绿色(从左到右)的弧。它只是在表格上绘制。
private void button1_Click(object sender, EventArgs e)
{
using (Graphics g = this.CreateGraphics())
{
LinearGradientBrush lgb = new LinearGradientBrush(new Point(0, 0), new Point(210, 0), Color.Red, Color.Green);
Pen p = new Pen(lgb, 10);
g.DrawArc(p, 10, 10, 200, 200, -22.5f, -135f);
}
}
这适用于最高180度的弧。我不得不考虑整整一圈。
答案 1 :(得分:2)
您尚未指定您正在使用的语言,但一般而言,您可以使用像Hue-Saturation-Value (HSV)这样的颜色模型,并将色调从0度(红色)循环到120度(绿色)无论饱和度和价值适合你。
这是一个例子 - 顶部渐变在RGB模型中从绿色变为红色,但较低的渐变使用HSV,从而产生更令人愉悦的效果。