我有一个使用此代码的画布和绘制曲线:
using (Graphics g = Graphics.FromImage(canvas.BackgroundImage)) { g.DrawCurve(pen, points);
points 是我通过鼠标位置点填充的数组 . 在结果中,我看到一些我没画的锯齿状线条 .
points
你可以在这里看到它们(红色矩形):
我该怎么办?
您所看到的是 default Linejoin的 default , Miter 和 default default 的有点不合理的组合,即10 .
Miter
相反,您可以选择选择其他 LineJoin 选项之一,或者将 MiterLimit 减少到少于 Pen.Width 的一半 .
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; }
1 回答
您所看到的是 default Linejoin的 default ,
Miter
和 default default 的有点不合理的组合,即10 .相反,您可以选择选择其他
LineJoin
选项之一,或者将MiterLimit
减少到少于Pen.Width
的一半 .