2009-04-22 50 views
2

有没有一种方法可以用来在c#中生成非线性渐变画笔?c#非线性渐变画笔?

澄清:我没有寻找可应用于非线性路径的渐变。相反,我正在寻找两种颜色之间的渐变,它们以非线性方式在两者之间褪色,即渐变的速率在渐变开始时更快,并且随着画笔接近终点而变慢。

这是甚至可能在c#中使用gdi +吗?

回答

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

谢谢,这样做的伎俩!现在以编程方式计算非线性混合! – 2009-04-27 08:34:48