作者Arton0306 (没有怎麽办)
看板C_Sharp
标题Re: [问题] 卷轴卷动时图形重绘如何加快
时间Wed Aug 30 21:30:17 2006
※ 引述《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)
1F:推 horngsh:用DIRECTX来画可能会比较快?? 有错请指正. 08/31 06:23