gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 10:45:56 27 4
gpt4 key购买 nike

在我的应用程序中,我需要绘制一个方程。绘制的方程将由许多小的直线组成。当我在 for 中使用 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 之间的差异不会很明显。这随着笔画宽度的增加而显着改变;所以请记住这些粗线的这个属性!

关于c# - DrawLine 方法提供比 DrawLines 方法更高的质量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23410665/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com