2011-06-08 33 views
0

我已经使用下面的代码来制作3个点,将它们绘制成位图,然后将位图绘制到主表单中,但是它似乎始终在点2之前绘制点3,因为Y坐标低于点2。有没有办法来克服这一点,因为我需要一个曲线向上和向下的曲线,而不是仅仅起来如何绘制既能上下曲线又能曲线的方法?

  Bitmap bit = new Bitmap(490, 490); 
      Graphics g = Graphics.FromImage(bit); 
      Graphics form = this.CreateGraphics(); 
      pntPoints[0] = this.pictureBox1.Location; 

      pntPoints[1] = new Point(100,300); 
      pntPoints[2] = new Point(200, 150); 
      g.DrawCurve(p, pntPoints); 


      form.DrawImage(bit, 0, 5); 

      bit.Dispose(); 
      g.Dispose(); 

回答

0

点3的Y坐标不低,它实际上更高。 Graphics的(0; 0)点位于左上角,Y值从上到下增加,而不是从下往上增加。因此,结果图像上的点(0; 100)将高于(0; 200)。

如果你想要一个上升然后下降的曲线,你应该在(0; 489)中放置第一个点,在(100,190)中放置第二个点,在(200,340)中放置第三个点。

0

我建议你把一个调试功能,它将标志着并找准穴位自己,所以你可以确切地看到他们在哪里。一个关闭颜色的像素,点的索引和坐标一起将帮助您确定在哪里发生了什么。

现在,我想知道,这两点真的应该是绝对的,还是他们应该是相对于第一点?

+0

感谢您的回复,我发现我的错误,所有点都是从窗体的左上角绘制的,而不是左下角,所以我一直在错误地创建一切:| – blaze 2011-06-08 02:14:26