Why do I see this jagged curves?

2019-01-20 06:21发布

I have a canvas and draw curve with this code:

using (Graphics g = Graphics.FromImage(canvas.BackgroundImage))
{
    g.DrawCurve(pen, points);

points is array that I fill that by mouse location points. In the result I see some jagged lines that I didn't draw.

You can see them here(in red rectangles):

enter image description here

What can i do about this?

1条回答
狗以群分
2楼-- · 2019-01-20 07:03

What you is see is the somewhat unlucky combination of the default for Linejoin, which is Miter and the default for MiterLimit, which is 10.

Instead you have a choice of either picking one of the other LineJoin options or reducing the MiterLimit to say less than half the Pen.Width..

using (Pen myPen = new Pen(Color.Blue, 24f))
{
    // either another LineJoine;
    myPen.LineJoin = System.Drawing.Drawing2D.LineJoin.Round;
    // or a reduced MiterLimit:
    myPen.MiterLimit = 1+ myPen.Width / 5f;
}
查看更多
登录 后发表回答