我有一个 List<Point> 多个点。如何将这些点绘制成位图,以获得与此相同的效果:
List<Point>
http://img291.imageshack.us/img291/4462/outputtz.png
点是已知的,我只需要以某种方式实现这个梯度效果。
请注意渐变不是径向的,如果你把折线解成直线,你会得到从一端到另一端的简单线性渐变。我只需要沿着线的“断点”扭曲这个线性梯度。
我目前的解决方案是分别画每条线,同时计算适当的 开始颜色 和 结束颜色 为每一行,所以我可以使用 LinearGradientBrush DrawLine .
LinearGradientBrush
DrawLine
1)
2) 如何画一条两端圆的线(如图所示)?我的解决办法是画一条普通的线,两端各有一个椭圆,但是这些椭圆没有梯度,所以如果这条线很短,就没有梯度。
关于圆角,可以为钢笔设置此属性
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