Re: [請益] 想請教關於GDI+的問題
推
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,
02/24 22:30
→
02/24 22:32,
02/24 22:32
→
02/24 22:32,
02/24 22:32
→
02/24 22:33,
02/24 22:33
推
02/24 23:43,
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
討論串 (同標題文章)
C_Sharp 近期熱門文章
PTT數位生活區 即時熱門文章