c# - 基于圆弧的渐变

标签 c# gradient

我正在尝试创建一个圆弧(可变宽度,可变度数 - 可能是整个圆)逐渐从一端的红色变为另一端的绿色。我还没有想出如何在圆弧上指定渐变来完成此操作。

例如,如果您可以想象创建一个圆形温度计,其中仪表标记指向圆上从 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/

相关文章:

android - 带有渐变轮廓的自定义按钮和带有透明背景的图标

c# - 如何将 Dapper 与包含两个表之间的 INNER JOIN 的 SELECT 存储过程一起使用?

c# - LINQ to SQL DataContext 不更新 ConnectionString

c# - 谁能告诉我 FrameworkElement obj=sender as FrameworkElement 和 FrameworkElement obj=(FrameworkElement) someobject 之间的区别

安卓矩形背景渐变

ios - SKSpriteNode 动画渐变

c# - JProperty 转换为字符串而不是对象数组

c# - C# 和 VB.NET 之间的不同 ExactSpelling 默认值。为什么?

r - 如何在3D散点图中将色标分配给变量?

iphone - 如何为 UILabel 的文本而不是背景添加渐变?