3

たとえば、一方の端が赤からもう一方の端が緑に徐々に変化する円弧(可変幅、可変度数 - 潜在的に円全体)を作成しようとしています。これを達成するために円弧にグラデーションを指定する方法がわかりません。

たとえば、ゲージ マーカーが円の 0 から 500 までのさまざまな角度を指す円形の温度ゲージを作成することを想像できるとします。追加のビジュアルとして、ゲージの円周にゲージの温度を示すグラデーション色を付けたいと思います。クール (緑) から非常にホット (赤) に変わります。

PathGradientBrush と LinerarGradientBrush の両方を試しました (ただし、何かを見逃している可能性があります)。放射状グラデーションでも、必要なものが得られないようです。

どんなアイデアでも役に立ちます。

ありがとう。

4

2 に答える 2

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 度までの円弧で機能します。私はそれを一周することを考えなければなりません。

于 2009-07-24T16:49:24.800 に答える