在GDI +中绘制带渐变的折线

时间:2010-06-28 19:07:38

标签: c# .net gdi+ drawing gradient

我有List<Point>个多点。如何将这些点绘制到位图中,以获得与此相同的结果:

http://img291.imageshack.us/img291/4462/outputtz.png

已知点数,我只需要以某种方式实现这种渐变效果。

请注意,渐变不是径向的,如果将折线解开为直线,则会从一端到另一端获得简单的线性渐变。我只需要沿着线的“断点”扭曲这个线性渐变。

我目前的解决方案是分别绘制每一行,同时为每一行计算正确的开始颜色结束颜色,这样我就可以使用LinearGradientBrush然后是DrawLine


1)除了自己计算颜色外,还有其他解决方案吗?

2)如何绘制圆形线条(如图像所示)?我的解决方案是绘制普通线,每端有椭圆,但这些椭圆不会有渐变,所以如果线很短,则没有渐变。

1 个答案:

答案 0 :(得分:1)

关于圆形末端,您可以为您设置此属性Pen

    Graphics g = e.Graphics;
    Pen p = new Pen(Color.Brown, 15);

    // round ends
    p.StartCap = LineCap.Round;
    p.EndCap = LineCap.Round;
    g.DrawLine(p, 30, 80, Width - 50, 80);//can be replace with you code

因此,您可以更改画布笔。