多页动画技术研究论文

多页动画技术研究论文

ID:17946407

大小:26.00 KB

页数:5页

时间:2018-09-11

多页动画技术研究论文 _第1页
多页动画技术研究论文 _第2页
多页动画技术研究论文 _第3页
多页动画技术研究论文 _第4页
多页动画技术研究论文 _第5页
资源描述:

《多页动画技术研究论文 》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、多页动画技术研究论文多页动画技术研究论文多页动画技术研究论文  动画设计中消除图像闪烁的一种方法是使用多页动画。多页动画是通过使用页切换技术实现的。页切换改变显示页以绘制出给定动画序列的相邻帧。由于图像通常绘制在不同的页上(不是当前可见页),用户不会看到图像被绘制或擦除。所以,这种技术能产生高质量的动画而没有图像闪烁。进行页切换的详细步骤如下。  1.选择一种至少有两个可用显示页的视频模式(示例中为EGA640×200,16色4页)。  2.使用-setvideomode()函数获取选择的视频模式。在当前显示页(0页)上绘制出序列中的第一帧。  3.在需要绘制出序列中

2、下一帧时,使用-setactivepage()函数设置激活页为备用显示项,仅仅改变激活页(不是可见页)。  4.绘制出下一帧。此帧将被绘制在备用显示页(页1)上,而当前页(页0)继续被显示。在以后重复这一步时在绘制新的一帧前擦除掉已有的帧。  5.绘制出新的一帧以后,使用-setvisualpage()函数将可见页设置为备用页。此时,备用页成为当前页。  6.重复步骤3到5直到完成了动画序列为止。  以下程序(采用VisualC++)演示了实际的多页动画,例子中的动画序列读者自行设计。  #include  #include  #include  #defineLAS

3、T-FRAME4/*Totalframesinthesequence.*/  #defineDRAW1/*Codeforthedrawoperation.*/  #defineDELTA-X10/*Pixelsmovedperframechange.*/  #defineHALF-SECOND500/*500msecdelaybetweenframes  .*/  #defineMAX-X600/*MaxXpositionbeforetermination.  */  #defineSETUP-DISPLAYpar  par-setvideomode(-HRES1

4、6COLOR);par  #defineEXIT-TO-DOSpar  par-setvideomode(-DEFAULTMODE);par  /****页切换和绘制动画序列****/  #definePAGE-FLIP(v)par  parif(v==0)v=1;par  elsev=0;par  -setactivepage(v);par  -clearscreen(-GCLEARSCREEN);par  -settextposition(1,16);par转outtext(par”Example:  MultiplePageAnimati

5、on”);par  draw-frame(current-frame,px,py);par  -setvisualpage(page);par  create-delay(HALF-SECOND);par  intpx,py;/*Currentcharacterposition.*/  intpage;/*Currentpagedisplayed.*/  intcurrent-frame;/*Currentframedisplayed.*/  main()  SETUP-DISPLAY  cycle-frames();  EXIT-TO-DOS  cycle-

6、frames()  current-frame=0;  px=0;  py=85;  page=0;  while(px  current-frame++;  if(current-frame>LAST-FRAME)  current-frame=2;  PAGE-FLIP(page)  px=px+DELTA-X;  current-frame=1;  PAGE-FLIP(page)  draw-frame(frame,x,y)  intframe,x,y;  switch(frame)  case1:  frame-1(DRAW,x,y);  break;  ca

7、se2:  frame-2(DRAW,x,y);  break;  case3:  frame-3(DRAW,x,y);  break;  case4:  frame-4(DRAW,x,y);  break;  create-delay(td)  /**同BorlandC++中的delay(td)函数**/  inttd;  time-tts1,ts2;  ts2=ts1=clock();  while(ts1+td>ts2)  ts2=clock();

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。