DrawLines绘制了额外的不需要的线条

时间:2012-12-27 16:11:39

标签: c# forms gdi+

我的应用程序在数组中保存点,然后调用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);
}

有问题的图片

enter image description here

1 个答案:

答案 0 :(得分:2)

Graphics.DrawLines方法:

  

绘制一系列连接终点数组的线条。该   数组中的前两个点指定第一行。每增加   point指定起点为的线段的结尾   前一个线段的结束点。

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