代码之家  ›  专栏  ›  技术社区  ›  Paya

GDI中带梯度的多边形绘制+

  •  2
  • Paya  · 技术社区  · 16 年前

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

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

    点是已知的,我只需要以某种方式实现这个梯度效果。

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

    我目前的解决方案是分别画每条线,同时计算适当的 开始颜色 结束颜色 为每一行,所以我可以使用 LinearGradientBrush DrawLine .


    1)

    2) 如何画一条两端圆的线(如图所示)?我的解决办法是画一条普通的线,两端各有一个椭圆,但是这些椭圆没有梯度,所以如果这条线很短,就没有梯度。

    1 回复  |  直到 15 年前
        1
  •  1
  •   Sara S.    15 年前

    关于圆角,可以为钢笔设置此属性

        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
    

    推荐文章