首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

,用BCB 画一个移动的圆遇到有关问题

2012-03-03 
求助,用BCB 画一个移动的圆遇到问题!如题,本人想在image中画一个能够按照一条给定的直线运动(圆心在直线上

求助,用BCB 画一个移动的圆遇到问题!
如题,本人想在image中画一个能够按照一条给定的直线运动(圆心在直线上)的圆,但是遇到一些问题,希望高手帮忙解决!

问题:1。 刷新问题,好像有个函数,可以刷新区域,可惜不记得了,唉,每次弄得黑乎乎一片!
   
  2. 运行时间太快,看不到移动,怎么才能让其慢下来,看到圆的运动。
   
希望各位GG帮忙!


[解决办法]
1 、 Refresh()
贴出你的代码
[解决办法]

C/C++ code
void __fastcall TForm1::Timer1Timer(TObject *Sender){   Graphics::TBitmap *bmp=NULL;   static int x=-1,y,rx,ry;   static int r=100;   bmp=new Graphics::TBitmap();   bmp->Width=ClientWidth;   bmp->Height=ClientHeight;   if(x==-1)   {      Timer1->Interval=30;      randomize();      x=random(bmp->Width-r)+r;      y=random(bmp->Height-r)+r;      rx=random(2);      if(rx==0)         rx=-1;      ry=random(2);      if(ry==0)         ry=-1;   }   x+=rx;   y+=ry;   if(x<1)      rx=1;   else if (x>bmp->Width-r-1)      rx=-1;   if(y<1)      ry=1;   else if(y>bmp->Height-r-1)      ry=-1;   bmp->Canvas->Ellipse(x,y,x+r,y+r);   BitBlt(Canvas->Handle,0,0,bmp->Width,bmp->Height,bmp->Canvas->Handle,0,0,SRCCOPY);   delete bmp;}
[解决办法]
不要直接在画布上画,创建一个Bitmap对象,在Bitmap对象上画,好好了再Drow到画布上
鼠标移动位置重绘背景,新位置重绘圆,Drow到画布
[解决办法]
可以用Canvas->DrawImage或BitBlt函数实现

热点排行