国产在线导航,欧美日本中文,黄色在线观看网站永久免费乱码,chinese国产在线视频,亚洲欧洲第一视频,天天做人人爱夜夜爽2020毛片,亚洲欧美中文字幕在线网站

現(xiàn)在位置:范文先生網(wǎng)>理工論文>計(jì)算機(jī)論文>多頁(yè)動(dòng)畫(huà)技術(shù)

多頁(yè)動(dòng)畫(huà)技術(shù)

時(shí)間:2023-02-20 22:50:45 計(jì)算機(jī)論文 我要投稿
  • 相關(guān)推薦

多頁(yè)動(dòng)畫(huà)技術(shù)

 動(dòng)畫(huà)設(shè)計(jì)中消除圖像閃爍的一種方法是使用多頁(yè)動(dòng)畫(huà)。多頁(yè)動(dòng)畫(huà)是通過(guò)使用頁(yè)切換技術(shù)實(shí)現(xiàn)的。頁(yè)切換改變顯示頁(yè)以繪制出給定動(dòng)畫(huà)序列的相鄰幀。由于圖像通常繪制在不同的頁(yè)上(不是當(dāng)前可見(jiàn)頁(yè)),用戶不會(huì)看到圖像被繪制或擦除。所以,這種技術(shù)能產(chǎn)生高質(zhì)量的動(dòng)畫(huà)而沒(méi)有圖像閃爍。進(jìn)行頁(yè)切換的詳細(xì)步驟如下。

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

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

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

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

5.繪制出新的一幀以后,使用-setvisualpage()函數(shù)將可見(jiàn)頁(yè)設(shè)置為備用頁(yè)。此時(shí),備用頁(yè)成為當(dāng)前頁(yè)。

6.重復(fù)步驟3到5直到完成了動(dòng)畫(huà)序列為止。
以下程序(采用Visual C++)演示了實(shí)際的多頁(yè)動(dòng)畫(huà),例子中的動(dòng)畫(huà)序列讀者自行設(shè)計(jì)。
#include <conio.h>
#include <graph.h}
#include <time.h}
#define LAST-FRAME 4/* Total frames in the sequence. */
#define DRAW 1 /* Code for the draw operation. */
#define DELTA-X 10 /* Pixels moved per frame change. */
#define HALF-SECOND 500 /* 500 msec delay between frames
. */
#define MAX-X 600 /* Max X position before termination.
*/
#define SETUP-DISPLAY \par
\par -setvideomode(-HRES16COLOR); \par
#define EXIT-TO-DOS \par
\par -setvideomode (-DEFAULTMODE); \par
/****頁(yè)切換和繪制動(dòng)畫(huà)序列****/
#define PAGE-FLIP(v) \par
\par if(v==0) v=1; \par
else v=0; \par
-setactivepage(v); \par
-clearscreen(-GCLEARSCREEN); \par
-settextposition(1,16); \par
-outtext( \par "Example:
Multiple Page Animation"); \par
draw-frame(current-frame,px,py); \par
-setvisualpage(page); \par
create-delay(HALF-SECOND); \par
int px,py; /* Current character position. */
int page; /* Current page displayed. */
int current-frame; /* Current frame displayed. */
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)
int frame,x,y;
switch(frame)
case 1:
frame-1(DRAW,x,y);
break;
case 2:
frame-2(DRAW,x,y);
break;
case 3:
frame-3(DRAW,x,y);
break;
case 4:
frame-4(DRAW,x,y);
break;
create-delay(td)
/**同Borland C++中的delay(td)函數(shù)**/
int td;
time-t ts1,ts2;
ts2=ts1=clock();
while(ts1+td>ts2)
ts2=clock();


【多頁(yè)動(dòng)畫(huà)技術(shù)】相關(guān)文章:

ActiveX技術(shù)在WEB頁(yè)上的應(yīng)用08-06

101頁(yè)教案08-16

在Windows中顯示多幅彩色圖像的技術(shù)08-06

g1多技術(shù)策略個(gè)人總結(jié)03-18

求職簡(jiǎn)歷:一頁(yè)就夠 兩頁(yè)太長(zhǎng)08-06

定格動(dòng)畫(huà)之陶瓷動(dòng)畫(huà)08-18

簡(jiǎn)歷多少頁(yè)合適08-15

多USB接口的局域網(wǎng)接入技術(shù)的實(shí)現(xiàn)08-06

多 USB 接口的局域網(wǎng)接入技術(shù)的實(shí)現(xiàn)08-06