[.NET] 如何加快繪圖的速度

看板Visual_Basic作者 (just leo)時間14年前 (2010/04/08 10:42), 編輯推噓1(101)
留言2則, 2人參與, 最新討論串1/1
我要寫一個根據USB收到的資料繪出波形的程式 但是遇到問題是繪出來的波形都會跟預期的不一樣 目前測試下來推測是繪圖這個動作花的時間太長了 導致在繪第一筆資料的時候第二筆資料已經送過來了而沒收到 因為把繪圖的程式碼Mark掉只看接收的資料是沒有錯的 而加上繪圖的程式碼後會出現資料漏收的問題 以下是我繪圖的程式碼,不知道有沒有甚麼寫法能加快繪圖的速度? g = display_ECG(device).PictureBox_ECG.CreateGraphics g.Clear(display_ECG(device).PictureBox_ECG.BackColor) g.DrawLine(Pens.Red, center_axis, 0, center_axis, h_ECG) lastx = 0 lasty = h_ECG - ECG_array(device, 0) * h_ECG / 255 For i = 1 To DataCap_ECG x = w_ECG * i / (DataCap_ECG + 1) y = h_ECG - ECG_array(device, i) * h_ECG / 255 g.DrawLine(Pens.Yellow, lastx, lasty, x, y) lastx = x lasty = y Next g.Dispose() g = display_ECG(device).PictureBox_Window.CreateGraphics g.Clear(display_ECG(device).PictureBox_Window.BackColor) lastx = 0 lasty = h_window - (ECG_window_buffer(device, 0) - Lbound) * h_window / (Ubound - Lbound) For i = 1 To DataCap_Window x = w_window * i / (DataCap_Window + 1) y = h_window - (ECG_window_buffer(device, i) - Lbound) * h_window / (Ubound - Lbound) g.DrawLine(Pens.Yellow, lastx, lasty, x, y) lastx = x lasty = y Next g.Dispose() P.S : 有搜尋過板上有關"繪圖"的文章 似乎都沒有我想找的資料 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.117.164.192

04/08 12:32, , 1F
收歸收 畫歸畫 一次要做兩件事時 再快也是要等滴
04/08 12:32, 1F

04/08 14:52, , 2F
GDI+效能很差...
04/08 14:52, 2F
文章代碼(AID): #1BlKA4s5 (Visual_Basic)