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

时间:2016-03-18 12:20:22

标签: c# winforms graphics curve

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

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

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

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

enter image description here

我该怎么办?

1 个答案:

答案 0 :(得分:2)

你看到的是Linejoin默认LineJoin和{{3>的默认有点不合理的组合},这是10。

相反,您可以选择选择其中一个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; } 的一半。

<a>