作者Anonymoux (猜猜偶素随 ? ^*^)
看板C_Sharp
标题Re: 如何增进你的程式演算法?
时间Tue Jan 4 00:59:58 2011
※ 引述《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
1F:推 danielguo:改用 WPF 如何? 有硬体加速 01/04 02:00