Re: [請益] 想請教關於GDI+的問題

看板C_Sharp (C#)作者 (C++)時間19年前 (2006/02/27 15:06), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串4/5 (看更多)

02/24 22:28,
感謝大大囉!! 您的意思我懂 我也有嚐試過把點存起來
02/24 22:28

02/24 22:29,
然後再每次把點叫出來重新繪製 不過想請教一下 是否有
02/24 22:29

02/24 22:29,
任何方法 能夠在視窗被切換以後觸發來把存起來的點重新
02/24 22:29

02/24 22:30,
繪製一次呢?! 感謝您了 m(_ _)m
02/24 22:30

02/24 22:32,
因為若是我原來只要一出現一個點的資料就畫一次的話
02/24 22:32

02/24 22:32,
螢幕會閃得很快!!! 因為我讀到資料的速度是以ms來算的:$
02/24 22:32

02/24 22:33,
sorry 不是ms是ns 先感謝囉!!!
02/24 22:33

02/24 23:43,
重畫的是通常都不用自己做, 你只要 override 那個視窗的
02/24 23:43
yalight:畫圖 method 就可以了 ..XD 02/24 23:45 不知道你說的跟我想的是否相同 我指的是 如果螢幕被擋住了 你就必須把被擋住的部分重新畫一次 而不是"每收到一個點就全部畫一次" 這樣太浪費資源了 當視窗被遮蓋後重新顯現或是顯示的一些特性被改變時(像是解析度或是視窗大小etc) 就會丟出一個重新繪製視窗的訊息給該視窗 該視窗就會進行重繪的動作 這概念很基本 希望你要有這概念 不然以後的路不好走 XD 上面的yalight有提到...如果你了解一點OO概念的話 應該知道他再說什麽 如果不知道的話 那還有些東西要學 但簡單說 視窗收到重繪訊息 在C#內代表那個視窗的物件 就會呼叫其內的某個method 來做重繪的動作 因此你只要override那個method 之後重繪動作就會依照你的method進行 你可以覆寫那個method 內容就是把所有點的點都畫出來(從第一個點開始) 所以 你的接收並畫出 跟 重繪(全部從頭畫出) 是兩個不同的動作 不能寫在一起 簡單來說 應該像是 storage s recieve get data and print it save data in s repaint print all data in s 當然 你說你的資料是以ns為單位遞增 (雖然我太不相信...ns=10^-9 除非特殊儀器 記憶體存取都沒這麼快了 該不會是說microsecond(10^-6)吧?) 想必資料一定很多 你也可以不用收到一個點馬上畫一次 畫的速度絕對趕不上資料產生 的速度 你可以收集個幾時點或是幾百點再畫一次也可以 而且重繪的方式你可以甘脆把之前畫好的畫面留下來 每次重繪就把畫面重畫到螢幕上 不然每次畫幾千幾萬個點 不如畫一次螢幕好了 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.115.217.14
文章代碼(AID): #140gJZLl (C_Sharp)
文章代碼(AID): #140gJZLl (C_Sharp)