Re: [問題] 捲軸捲動時圖形重繪如何加快

看板C_Sharp (C#)作者 (沒有怎麼辦)時間19年前 (2006/08/30 21:02), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串2/3 (看更多)
※ 引述《Arton0306 (沒有怎麼辦)》之銘言: : 我現在有個panel : 上面有很多圖形 : 幾乎都是fillEllipse(其實我只是要畫小圓點 但只找到這個來用)多到上千個 : 以及drawLine : 這個panel比較大 有捲軸 : 每次拖拉捲軸的時候 : 因為又要重繪圖形 : 都會有點lag : 不知這種情形有沒有較好的處理方法?? 我找到double buffer的資料了 似乎是加上下面這一行即可 this.SetStyle(ControlStyles.OptimizedDoubleBuffer, true); 另外我也在C# express 2005中把該Form的DoubleBuffer屬性調成true了 不過還是沒有解決lag的問題 我想 我的問題似乎有點不一樣 msdn給的例子是圖形重繪的時候畫面會閃爍 而我的問題已經不只是閃爍了,是圖形畫得太慢(因為圖太多) 當我將捲軸往右移的時候 原本的圖形往左方,並且右邊留白處慢慢顯現出圖形 這裡的慢慢指的是眼睛可以看出圖形(大量的點)幾排幾排由下而上地跑出來 所以我在拉捲軸的時候就已經覺得很卡了,捲軸拉起來很不順 我看msdn對double buffer解釋是 先將圖形繪至記憶體中,等到畫完之後再一口氣秀出來,所以畫面變化很快 使得閃爍減少或消失。(應該是這樣吧??) 但我的圖形在運算的時候就有點慢了,這樣該怎麼辦呢? 另外一點,其實我的圖形每次也只顯示整個畫面可以看到的大小 可是每次重畫都要浪費時間去畫畫面以外的點(實在很浪費資源) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.135.138.142 ※ 編輯: Arton0306 來自: 220.135.138.142 (08/30 21:32) ※ 編輯: Arton0306 來自: 220.135.138.142 (08/30 21:33)

08/31 06:23, , 1F
用DIRECTX來畫可能會比較快?? 有錯請指正.
08/31 06:23, 1F
文章代碼(AID): #14zOnvTq (C_Sharp)
文章代碼(AID): #14zOnvTq (C_Sharp)