我有一个用 C#/GDI+ 编写的绘图程序,我在其中使用可互换的颜色和笔号在面板上绘制不同的形状。我的形状绘制方法工作正常,但是当涉及到使用免费笔(就像在 MS Paint 中那样)时,我已经制作了一种方法来完成这项工作,只是非常丑陋(参见链接中的图片)。
if (crtanje)
{
debljina = float.Parse(debljina_box.Text);
Graphics gr = Graphics.FromImage(bit);
gr.SmoothingMode = SmoothingMode.HighQuality;
olovka = new Pen(boja, debljina);
gr.DrawLine(olovka, new Point(prethodnoX ?? e.X, prethodnoY ?? e.Y), new Point(e.X, e.Y));
panel1.CreateGraphics().DrawImageUnscaled(bit, new Point(0, 0));
prethodnoX = e.X;
prethodnoY = e.Y;
}
是否可以修复此代码以使绘图更流畅,还是我应该采用其他方法?
the pic
我想您可以遍历一个 for 循环并将它增加一个非常小的量,以便它更频繁地绘制点并使线条更平滑。您可以保存当前点并计算下一个点,然后在它们之间画一条线。这就是如何让它变得更顺畅!
我是一名优秀的程序员,十分优秀!