在C#中以编程方式绘制锥形线

时间:2018-11-12 09:40:39

标签: c# drawing line bezier curve

是否可以使用C#通过代码绘制弯曲的锥形线?

我能够画出这样的曲线:

var g = panel1.CreateGraphics();
g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
var p = new Pen(Color.Black);            
var sb = new SolidBrush(Color.Red);            
PointF[] points = new PointF[] {
    new PointF(1,0),
    new PointF(100,0),
    new PointF(200,100),
    new PointF(400,0),
};
g.DrawBeziers(p,points);

但是这种方式我不能设置不同的宽度。

这就是我想要实现的 enter image description here

1 个答案:

答案 0 :(得分:0)

好吧,一旦我知道自己要做的事情就很容易了

绘制2行并填充之间的空间:

var g = panel1.CreateGraphics();
g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;

PointF[] points1 = new PointF[] {
    new PointF(0,0),
    new PointF(100,150),
    new PointF(500,0),
    //new PointF(400,0),
};
PointF[] points2 = new PointF[] {
    new PointF(0,0),
    new PointF(100,160),
    new PointF(500,0),
    //new PointF(400,0),
};

panelPath = new GraphicsPath();
panelPath.AddCurve(points1);
panelPath.AddCurve(points2);
g.FillPath(Brushes.Black, panelPath);