0

我的应用程序将点保存在一个数组中,然后调用System.Drawing.Graphic.DrawLines(Pen, Point[])以绘制连接这些点的线。它有效,但绘图线似乎总是在数组的第一个点和表单的左上角之间放置一条额外的线。

好的,等一下,我把样品弄得一团糟,尽快修复

代码示例:

Pen black = new Pen(Color.black, 2);
MyGraphicObject = Graphics.FromImage(picture);
Point[] linee = new Point[5];
public void check (int a, int b)
{         
     linee[0].X = (b) * 30 + 13;
     linee[0].Y = (a-1) * 30 + 13; 
     linee[1].X = (b+1) * 30 + 13;
     linee[1].Y = (a) * 30 + 13; 
     linee[2].X = (b) * 30 + 13;
     linee[2].Y = (a+1) * 30 + 13; 
     linee[3].X = (b-1) * 30 + 13;
     linee[3].Y = (a) * 30 + 13; 
     linee[4].X = (b) * 30 + 13;
     linee[4].Y = (a-1) * 30 + 13; 
     MyGraphicObject.DrawLines(black, linee);
}

有问题的图片

在此处输入图像描述

4

1 回答 1

2

Graphics.DrawLines方法:

绘制一系列连接端点数组的线。数组中的前两个点指定第一行。每个附加点指定一条线段的终点,其起点是前一条线段的终点。

我认为你在数组的开头或结尾都有一个额外的点,它是用默认值初始化的。可能的原因 - 您创建了长度为 N+1 的点数组(其中 N 是点数)。而且您没有为第一点或最后一点提供 X 和 Y。因此它保持默认X = 0, Y = 0

于 2012-12-27T16:21:03.567 回答