首页 文章

为什么我会看到这种锯齿状的曲线?

提问于
浏览
1

我有一个使用此代码的画布和绘制曲线:

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

points 是我通过鼠标位置点填充的数组 . 在结果中,我看到一些我没画的锯齿状线条 .

你可以在这里看到它们(红色矩形):

我该怎么办?

1 回答

  • 2

    您所看到的是 default LinejoindefaultMiterdefault default 的有点不合理的组合,即10 .

    相反,您可以选择选择其他 LineJoin 选项之一,或者将 MiterLimit 减少到少于 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;
    }
    

相关问题