Рисование конических линий программно в c # - PullRequest
0 голосов
/ 12 ноября 2018

возможно ли рисовать изогнутые конические линии с помощью 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 голосов
/ 12 ноября 2018

Хорошо, это было легко, когда я знал, что мне нужно делать:

Нарисуйте 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);
...