2009-04-22 18 views
2

C#で非線形勾配ブラシを生成するために使用できる方法はありますか?C#非線形勾配ブラシ?

明確にするために、私は非線形パスに適用できる勾配を探していません。むしろ、私は2つの色の間の勾配を探しています.2つの色の間では非線形にフェードします。すなわち、勾配の開始時の変化率が速く、ブラシが終了点に近づくにつれて減速します。

これは、gdi +を使用しているC#でもリモートで可能ですか?

答えて

8

はい、ブラシのブレンドを設定します。

LinearGradientBrush blendBrush = new LinearGradientBrush(Rectangle, Color.Red, Color.White, 360f); 
Blend blend = new Blend(); 
blend .Factors = new float[] { 1.0f, 0.9f, 0.8f, 0.7f, 0.6f, 0.5f, 0.4f, 0.5f, 0.6f, 0.7f, 0.8f }; 
blend .Positions = new float[] { 0, 0.1f, 0.2f, 0.3f, 0.4f, 0.5f, 0.6f, 0.7f, 0.8f, 0.9f, 1.0f }; 
blendBrush.Blend = blend ; 

この例では、フェードアウトして元の色に戻ります。それでちょっとセンター効果からいっぱいです。

+0

おかげで、これはトリックを行います!非線形のブレンドをプログラムで計算するようになりました! –