有没有一种方法可以用来在c#中生成非线性渐变画笔?c#非线性渐变画笔?
澄清:我没有寻找可应用于非线性路径的渐变。相反,我正在寻找两种颜色之间的渐变,它们以非线性方式在两者之间褪色,即渐变的速率在渐变开始时更快,并且随着画笔接近终点而变慢。
这是甚至可能在c#中使用gdi +吗?
有没有一种方法可以用来在c#中生成非线性渐变画笔?c#非线性渐变画笔?
澄清:我没有寻找可应用于非线性路径的渐变。相反,我正在寻找两种颜色之间的渐变,它们以非线性方式在两者之间褪色,即渐变的速率在渐变开始时更快,并且随着画笔接近终点而变慢。
这是甚至可能在c#中使用gdi +吗?
是的,设置画笔的混合。
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 ;
此示例将开始淡出,然后返回到前一种颜色。所以有点中心效应。
使用一个LinearGradientBrush的混合属性 -
http://msdn.microsoft.com/en-us/library/system.drawing.drawing2d.blend(VS.80).aspx
谢谢,这样做的伎俩!现在以编程方式计算非线性混合! – 2009-04-27 08:34:48