C#:非线性渐变刷?

3
有没有一种方法可以在C#中生成非线性渐变刷子?
澄清一下:我不是在寻找可以应用于非线性路径的渐变。相反,我正在寻找两种颜色之间的渐变,它以非线性方式淡化了两种颜色,即渐变的变化速率在渐变开始时更快,在刷子接近结束点时减慢。
使用GDI+,这种方法是否可能?
2个回答

7

好的,设置画笔的混合模式。

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 ;

这个例子将开始淡出,然后回到之前的颜色。所以是一种从中心填充的效果。


谢谢,这个很管用!现在要编写代码来计算非线性混合! - TK.


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接