DrawLine方法比DrawLines方法提供更高的质量

欧拉诺斯

在我的应用中,我需要绘制一个方程。绘制的方程式将由许多小的线性线组成。当我在内部使用DrawLine方法绘制它时,与使用DrawLines方法时相比,我获得了更高的质量。

Graphics canvas = pnlCanvas.CreateGraphics();
canvas.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;

//High Quality
for (int i = 0; i < plot_points.Length - 1; i++)
{
    canvas.DrawLine(penKat, plot_points[i], plot_points[i + 1]);
}

//Low Quality
canvas.DrawLines(penKat, plot_points);

由于某些问题,我需要使用DrawLines方法绘制它。有没有办法使用这种方法来获得高质量?

战车

尝试:

 penKat.EndCap = System.Drawing.Drawing2D.LineCap.Round;
 penKat.StartCap = System.Drawing.Drawing2D.LineCap.Round;
 penKat.LineJoin = LineJoin.Round;

如果您的线条粗于几个像素,则MiterLimit可能会有所帮助。

编辑:对于明快联接,您可能需要尝试使用其他LineJoin值:

 penKat.LineJoin = LineJoin.MiterClipped;
 penKat.MiterLimit = 1.5f;

或者

 penKat.LineJoin = LineJoin.Miter;
 penKat.MiterLimit = 1.5f;

尝试其他MiteLimit值,直到感到满意为止!或发布带有两个版本的示例图片。

对于2-4像素的笔划宽度,LineJoins之间的差异将不会非常明显。随着行程宽度的增加这种情况发生了巨大变化因此,请记住该属性适合那些粗线!

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

Related 相关文章

热门标签

归档