看板 Visual_Basic 關於我們 聯絡資訊
我正在寫一個利用迴圈來繪圖的程式 因為圖片的大小是由迴圈中其中一個參數決定 所以迴圈裡繪圖程式碼的目前先是這樣打: 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
MOONRAKER:先跑一次找出最大值然後scale一次不就結了 12/10 11:26
MOONRAKER:何必每次都scale 12/10 11:26
klio0047:我把Scale放在Next後面,XY軸有畫出來,但是Pout曲線卻 12/10 15:09
klio0047:出不來,有沒有其他解決方式呢? 12/10 15:09