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

时间:2014-05-01 15:17:28

标签: c# graphics drawing

在我的应用中,我需要绘制一个方程式。绘制的方程将由许多小线性线组成。当我在其中使用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方法绘制它。有没有办法使用这种方法获得高质量?

1 个答案:

答案 0 :(得分:2)

尝试:

 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之间的差异将不会非常明显。随着笔画宽度的增加,这会显着改变显着;所以请记住这些较粗的线条属性!