杨宗德教你用随机函数实现动画的技巧


  杨宗德教你用随机函数实现动画的技巧。在一些特殊的C语言动画技术中,可以利用随机函数int random(int num ) 取一个0~num范围内的随机数,经过某种运算后,再利用C 语言的作图语句产生各种大小不同的图形,也能产生很强的移动感。程序dh1.c就是利用随机函数来产生动画应用。该程序运行后,屏幕中间绘出一台微型计算机,微机下方同时显示“computer”的放大字形,在画出微机的小屏幕内,产生各种大小不同、颜色各异的矩形,这些矩形互相覆盖,给人以极强的动画感。

  程序中改变x1、x2、y1、y2的值,能将图形移动屏幕的任何位置,改变x、y的值,能将图形放大或缩小。

  [例9-7] 动画显示程序DH1.C

  #include

  #inclu]de

  #include

  #include

  #include

  #define X1 260

  #define X2 320

  #define y1 140

  #define y2 180

  #define Xy 16

  int gdrive,gmode,mcolor,ecode;

  struct palettetype palette;

  void initialize(void);

  void rbars(void);

  int main( )

  {

  initialize( ); /*初始化图形系统*/

  /* 显示放大字体*/

  setcolor(YELLOW);

  settextstyle(TRIPLEX_FONT,HORIZ_DIR,4);

  settextjustify(CENTER_TEXT,CENTER_TEXT);

  outtextxy((getmaXX( )/2-17),360,"COMPUTER");

  rbars( ); /* 主程序*/

  closegraph( )/*关闭图形系统*/

  return 1;

  }

  杨宗德教你用随机函数实现动画的技巧。

  void initialize(void)

  {

  gdrive=DETECT;

  initgraph (&gdrive,&gmode," ");

  ecode=graphresult( );

  if(ecode!=0)

  {

  printf("Graphice Error: %d\n",grapherrormsg(ecode));

  eXit(1);

  }

  getpalette(&palette);

  mcolor=getmaXcolor( )+1;

  }

  void rbars(void)

  {

  int color; /* 画计算机图形*/

  setcolor(DARKGRAY);

  bar3d(X1-20,y1-20,X2+56,y2+70,0,3);

  setfillstyle(CLOSE_DOT_FILL,BLUE);

  setfillstyle(SOLID_FILL,RED);

  circle(X2+28,y2+60,4);

  bar(X1+4,y1+78,X1+20,y1+83);

  setcolor(MAGENTA);

  circle(X2+28,y2+60,4);

  circle(X2+16,y2+60,4);

  circle(X2+4,y2+60,4);

  setcolor(WHITE);

  setfillstyle(SOLID_FILL,DARKGRAY);

  bar3d(X1-60,y1+120,X1+154,y1+170,0,2);

  bar3d(X1+120,y1+126,X1+100,y1+164,0,2);

  line (X1+20,y1+145,X1+100,y1+145);

  setfillstyle(SOLID_FILL,GREEN);

  bar(X1+26,y1+130,X1+34,y1+132);

  bar(X1+26,y1+150,X1+34,y1+152);

  setfillstyle(WIDE_DOT_FILL,RED);

  bar(X1-24,y1+128,X1-44,y1+142);

  /*利用随机函数实现矩形画面互相覆盖,产生动感*/

  while(!kbhit( ))

  {

  color=random(mcolor-1)+1;

  setcolor(color);

  setfillstyle(random(11)+1,color);

  bar3d(X1+random(getmaXX( )/Xy),y1+random(getmaXy( )/Xy),X2+getmaXX( )/Xy,y2+getmaXy( )/Xy,0,5 );

  }

  }

  杨宗德教你用随机函数实现动画的技巧,就先介绍到这里。了解跟更多c语言编程问题,就来e良师益友。