首頁 > 文章中心 > 正文

      多頁動畫技術

      前言:本站為你精心整理了多頁動畫技術范文,希望能為你的創作提供參考價值,我們的客服老師可以幫助你提供個性化的參考范文,歡迎咨詢。

      多頁動畫技術

      動畫設計中消除圖像閃爍的一種方法是使用多頁動畫。多頁動畫是通過使用頁切換技術實現的。頁切換改變顯示頁以繪制出給定動畫序列的相鄰幀。由于圖像通常繪制在不同的頁上(不是當前可見頁),用戶不會看到圖像被繪制或擦除。所以,這種技術能產生高質量的動畫而沒有圖像閃爍。進行頁切換的詳細步驟如下。

      1.選擇一種至少有兩個可用顯示頁的視頻模式(示例中為EGA640×200,16色4頁)。

      2.使用-setvideomode()函數獲取選擇的視頻模式。在當前顯示頁(0頁)上繪制出序列中的第一幀。

      3.在需要繪制出序列中下一幀時,使用-setactivepage()函數設置激活頁為備用顯示項,僅僅改變激活頁(不是可見頁)。

      4.繪制出下一幀。此幀將被繪制在備用顯示頁(頁1)上,而當前頁(頁0)繼續被顯示。在以后重復這一步時在繪制新的一幀前擦除掉已有的幀。

      5.繪制出新的一幀以后,使用-setvisualpage()函數將可見頁設置為備用頁。此時,備用頁成為當前頁。

      6.重復步驟3到5直到完成了動畫序列為止。

      以下程序(采用VisualC++)演示了實際的多頁動畫,例子中的動畫序列讀者自行設計。

      #include<conio.h>

      #include<graph.h}

      #include<time.h}

      #defineLAST-FRAME4/*Totalframesinthesequence.*/

      #defineDRAW1/*Codeforthedrawoperation.*/

      #defineDELTA-X10/*Pixelsmovedperframechange.*/

      #defineHALF-SECOND500/*500msecdelaybetweenframes

      .*/

      #defineMAX-X600/*MaxXpositionbeforetermination.

      */

      #defineSETUP-DISPLAY\par

      \par-setvideomode(-HRES16COLOR);\par

      #defineEXIT-TO-DOS\par

      \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:

      MultiplePageAnimation");\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-frames()

      current-frame=0;

      px=0;

      py=85;

      page=0;

      while(px<=MAX-X)

      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;

      case2:

      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個月內

      國家電影局

      動動畫世界

      部級期刊 審核時間1個月內

      宋慶齡基金會

      亚洲2022国产成人精品无码区| 亚洲AV成人影视在线观看| 亚洲专区中文字幕| 久久精品国产亚洲AV高清热| 亚洲色欲久久久综合网| 亚洲国产小视频精品久久久三级 | 亚洲综合一区二区国产精品| 亚洲AV无码不卡在线播放| 亚洲美女在线国产| 国产午夜亚洲精品不卡| 亚洲av手机在线观看| 亚洲Av无码乱码在线znlu| 激情婷婷成人亚洲综合| 国产亚洲蜜芽精品久久| 亚洲第一黄片大全| 国产亚洲精品成人久久网站| 欧洲亚洲国产精华液| 亚洲AV无码国产精品永久一区| 亚洲色偷偷色噜噜狠狠99网| 日韩亚洲国产高清免费视频| 亚洲综合av一区二区三区| 亚洲国产成a人v在线观看 | 国产成人精品日本亚洲| 亚洲中文字幕无码久久2017| 久久精品国产69国产精品亚洲| 亚洲成AV人在线播放无码| 无码久久精品国产亚洲Av影片| 337p欧洲亚洲大胆艺术| 亚洲一区二区三区不卡在线播放| 四虎必出精品亚洲高清| 亚洲AV无码一区二区三区网址| www亚洲精品少妇裸乳一区二区| 亚洲日韩在线第一页| 国产精品久久久亚洲| 亚洲系列中文字幕| 亚洲午夜精品久久久久久app| 亚洲AV噜噜一区二区三区| 亚洲日本va午夜中文字幕久久| 亚洲午夜久久久久久噜噜噜| 久久久久久亚洲精品| 亚洲av无码一区二区三区观看|