我正在尝试创建一个圆弧(可变宽度,可变度数 - 可能是整个圆)逐渐从一端的红色变为另一端的绿色。我还没有想出如何在圆弧上指定渐变来完成此操作。
例如,如果您可以想象创建一个圆形温度计,其中仪表标记指向圆上从 0 到 500 的不同度数。作为附加视觉效果,我希望仪表圆周具有渐变颜色,表示测量温度 - 从凉爽(绿色)到非常热(红色)。
我已经尝试过 PathGradientBrush 和 LinerGradientBrush(但也许我错过了什么)。径向渐变似乎也无法满足我的需求。
任何想法都会有所帮助。
谢谢。
最佳答案
此代码将创建一个从红色到绿色(从左到右)的弧。它只是在表单上绘制。
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 度的弧。我必须考虑做一个完整的循环。
关于c# - 基于圆弧的渐变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1178163/