作者klio0047 (No.81 亞當‧龍)
看板Visual_Basic
標題[VB6 ] Scale(x1,0)-(x2,0)的繪圖問題
時間Mon Dec 10 10:58:49 2012
我正在寫一個利用迴圈來繪圖的程式
因為圖片的大小是由迴圈中其中一個參數決定
所以迴圈裡繪圖程式碼的目前先是這樣打:
If Pout > PoutT Then
PoutS = Pout
End If
Picture3.Scale (-NO * 0.02, PoutS*1.2)-(NO * 1.3,-PoutS*0.09)
Picture3.Line (-NO * 0.02, 0)-(NO* 1.3, 0)
Picture3.Line (0, -PoutS * 0.02)-(0, PoutS * 1.2)
Picture3.Line (N, Pout)-(NT, PoutT), RGB(50, 205, 50)
PoutT = Pout
NT=N
這個程式的目的是求得Pout的曲線圖
迴圈是由N來控制,由Pout及NT紀錄上一個迴圈中Pout及N的值來畫線
由PoutS來比較每個Pout的大小,將最大的Pout選出後來決定Scale中Y軸的值
但是似乎問題在於在計算程式碼中所算出來的第一個Pout是「0」
編譯時似乎不能接受Scale(x1,0)-(x2,0)的狀況,會跑出錯誤「除以0」
所以我本來想說在個Scale前面加個
If PoutS=0 Then PoutS=0.000001 End If
用一個趨近於零的數字來取代
但是這樣就變成跑出來的圖出現錯誤
在Pout<PoutS時的PoutT通通變成另一個數值
結果在Pout<PoutS時的線會自己連到其他地方了
不知道有沒有高手知道解決方法呢?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.134.202.38
1F:→ MOONRAKER:先跑一次找出最大值然後scale一次不就結了 12/10 11:26
2F:→ MOONRAKER:何必每次都scale 12/10 11:26
3F:→ klio0047:我把Scale放在Next後面,XY軸有畫出來,但是Pout曲線卻 12/10 15:09
4F:→ klio0047:出不來,有沒有其他解決方式呢? 12/10 15:09