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

Why do I see this jagged curves?

我有一个 canvas 并使用此代码绘制曲线:

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

points是我用鼠标定位点填充的数组。 结果我看到了一些我没有画的锯齿状线条。

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

我该怎么办?

您看到的是 默认值 Linejoin, which is Miter and the default for MiterLimit 的有点不吉利的组合,即 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;
}