小编Apo*_*n04的帖子

提高绘制线的速度

所以我有一个按一些标准订购的点数列表:

List<System.Drawing.Point> points = new List<System.Drawing.Point>();
System.Drawing.Point prev = new System.Drawing.Point();
Run Code Online (Sandbox Code Playgroud)

我正在使用该列表中最接近的2个点之间绘制线条

prev = points[0];
System.Diagnostics.Stopwatch s1 = System.Diagnostics.Stopwatch.StartNew();
for (int i = 1; i < points.Count; i++)
{
    var pp = points[i];
    using (Graphics dr = Graphics.FromImage(img))
    {
        dr.DrawLine(bluePen, prev.X, prev.Y, pp.X, pp.Y);
        prev.X = pp.X;
        prev.Y = pp.Y;
    }
}
s1.Stop();
Run Code Online (Sandbox Code Playgroud)

对于908(宽度)x297(高度)像素图像,这段代码需要2-4秒.

我该怎么做才能提高速度?

编辑:发布下面的最终结果.虽然第一种方法仍然允许更精细地操纵图纸.

            using (Graphics dr = Graphics.FromImage(img))
                dr.DrawLines(bluePen, points.ToArray());
Run Code Online (Sandbox Code Playgroud)

c# system.drawing winforms

0
推荐指数
1
解决办法
174
查看次数

标签 统计

c# ×1

system.drawing ×1

winforms ×1