Re: 如何增進你的程式演算法?
※ 引述《tomex (tomex)》之銘言:
: 想要增進你程-式的演算效能,必須有超越一般正規運算的規則
: 我舉個例:
: 10到18間隨便取一數字a,然後減掉9,等於b
: a-9=b
: 這樣的express給電腦算很快,給人腦算就有1秒的delay了:
: 15-9=?
: 17-9=?
: 13-9=?
: 嘿,你現-在於大腦作運算的一秒內,就是屬於一般正規的演算法
: 但有一個更棒的演算法,就是把a的十位數+個位數,就等於b
: 15-9 = 1+5 = 6 = b
: 17-9 = 1+7 = 8 = b
: 以上的例子很奇妙吧? 雖然這例子處理的range不大,規則套用也有限
: 但我相信其他複雜的數學運算背後,一定會有另一套規則求算~
: 這就是建構式數學奇妙的地方!
無意間看到這篇 ~ 雖然很久以前的文了 順路回一下XD
之前為了處理MFC中的GDI繪圖 做出類似 特訓99 的效果(很多子彈在視窗中亂竄)
因為不曉得GDI物件透明比較正規的做法
於是嘗試了很多GOOGLE來的辦法
從用別人寫的透明貼圖函數
換到memdc (用記憶體畫)
最後參考別人做遊戲提到用 dirty rectangle等等方法
甚至各種方式搭配使用...效果都不是很好
最後回歸到畫圖的根本...用算圖的方式
不過這應該跟圖學、影像處理有關了...當初沒學現在繞了好一大圈 :(
dirty rectangle 的方法就有點像 先減後加(原圖子彈位置保留 在貼到新圖上)
而算圖的方法很簡單 原理大概就直接把子彈位置相加即可
其實不僅僅少了大量的DC運算 也不用減法而是加法 對CPU來說減輕許多負擔
效能也因此大大提升
碰巧最近C#的案子又遇到類似的問題
不曉得各位有沒有更好的大量物件在視窗中移動的辦法?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 112.105.196.238
推
01/04 02:00, , 1F
01/04 02:00, 1F
討論串 (同標題文章)
C_Sharp 近期熱門文章
PTT數位生活區 即時熱門文章