2011-06-08 122 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