日期:2014-05-19  浏览次数:20796 次

复杂背景下绘制移动小球的算法,如何才能提高绘制效率
程序的功能是在相同的背景(复杂背景)绘制一组移动小球的图片,即在每幅图片上都画上一个小球,但位置不同。
我考虑的方法是,每次绘制新图片时,首先记录下绘制区域的背景颜色信息。下次绘制时,首先将上次的绘制区域用已经记录的背景覆盖,而不是重新载入整个背景。但是不知道如何实现,哪位高手能指点一下方法...

下面是我写的代码
Image   image   =   Image.FromFile( "d:\\test.bmp ");   //载入背景
Bitmap   bitmap   =   new   Bitmap(image,image.Width,image.Height);
Graphics   g   =   Graphics.FromImage(bitmap);

SolidBrush   brush   =   new   SolidBrush(Color.Black);
int   i=0,   dia   =   10;
for(i=0;i <10;i++)
{
      //此处应添加用记录的背景信息擦除上次绘制小球的代码,如何实现
      g.FillEllipse(brush,i*10,i*10,dia,dia);   //画小球
      boxPictrue.Image   =   bitmap;   //显示结果
}

------解决方案--------------------
你把背景和小球分开,用2个PIC画
------解决方案--------------------
将背景image对象保存起来,
然后带背景和小球的图片从背景image产生。