谁能给我发一篇关于计算机的英文论文,翻译一下?

动画设计中消除图像闪烁的一种方法是使用多页动画。利用页面切换技术实现多页面动画。页面切换会更改显示页面,以绘制给定动画序列的相邻帧。因为图像通常绘制在不同的页面上(不是当前可见的页面),所以用户不会看到绘制或擦除的图像。因此,这项技术可以产生高质量的动画,没有图像闪烁。页面切换的详细步骤如下。

1.选择至少有两个可用显示页面的视频模式(例如,EGA640×200,16彩色4页)。

2.使用-setvideomode()函数获取所选的视频模式。在当前显示的页面(第0页)上绘制序列中的第一帧。

3.当需要绘制序列中的下一帧时,使用-setactivepage()函数将活动页面设置为替代显示项,只改变活动页面(不改变可见页面)。

4.画下一帧。该帧将绘制在待机显示页面(1页)上,而当前页面(0页)将继续显示。当稍后重复此步骤时,在绘制新框架之前先删除现有框架。

5.在绘制一个新框架后,使用-setvisualpage()函数将可见页面设置为备用页面。此时,备用页面成为当前页面。

6.重复步骤3到5,直到动画序列完成。

下面的程序(使用Visual C++)演示了实际的多页动画,例子中的动画序列是读者自己设计的。

# include & ltconio.h & gt

# include & ltgraph.h}

# include & lttime.h}

#定义序列中的最后一帧4/*总帧数。*/

#为绘制操作定义DRAW 1 /*代码。*/

#定义每帧变化移动的DELTA-X 10 /*像素。*/

#定义帧之间的半秒500 /* 500毫秒延迟

。*/

#定义终止前的最大X 600 /*最大X位置。

*/

#定义设置-显示\参数

\ par-set video mode(-hres 16 color);\par

#定义退出待办事项\par

\ par-set video mode(-default mode);\par

/* * * *页面切换和绘制动画序列* * */

#定义翻页(v) \par

\ par if(v = = 0)v = 1;\par

else v = 0;\par

-setactivepage(v);\par

-clear screen(-GCLEARSCREEN);\par

-settextposition(1,16);\par

-outtext( \par "示例:

多页动画”);\par

绘图帧(当前帧,像素,像素);\par

-setvisualpage(页面);\par

创建-延迟(半秒);\par

int px,py;/*当前字符位置。*/

int页面;/*显示当前页面。*/

当前帧间;/*显示的当前帧。*/

主()

设置-显示

循环帧();

退出待办事项

循环帧()

当前帧= 0;

px = 0;

py = 85

page = 0;

while(px & lt;=MAX-X)

当前帧++;

if(当前帧& gt最后一帧)

当前帧= 2;

翻页(第页)

px = px+DELTA-X;

current-frame = 1;

翻页(第页)

绘图框架(框架,x,y)

int帧,x,y;

开关(框架)

案例1:

frame-1(DRAW,x,y);

打破;

案例二:

帧-2(绘制,x,y);

打破;

案例三:

帧-3(绘制,x,y);

打破;

案例4:

帧-4(绘制,x,y);

打破;

创建延迟(td)

/* *与Borland C++ *中的延迟(td)函数相同

int td

time-t ts1,ts2

ts2 = ts 1 = clock();

while(ts 1+TD & gt;ts2)

ts2 = clock();

73 tupmop 1

动画设计中消除图像闪烁的一种方法就是使用动画页面。动画页面通过使用技术来切换页面。页面切换改变显示页面将被绘制到相邻帧的动画序列。由于图像通常是在不同的页面中绘制的(不能看到当前页面),用户不会看到图像被擦除或绘制。因此,这项技术可以产生高质量的动画和图像不闪烁。切换页面的详细步骤如下。

1.选择至少可用于两页视频模式的节目(例如EGA640 × 200,16 color 4)。

2.使用-setvideomode()函数获取选择的视频模式。在当前显示页面(0),绘制出第一帧中的序列。

3.在需要绘制出下一帧的序列时,使用-setactivepage()函数来激活页面设置为备份显示,只需改变激活页面即可(不可见)。

4.绘制下一帧。该画面将被绘制在备份显示页面(第1页),当前页面(第0页)继续显示。在以后新建地图时重复这一步进行预清理,以清除现有的框架。

5.映射出一个新的未来,使用-setvisualpage()函数将会看到一个back-page设置页面。此时,页面已经变成了背页。

6.重复步骤3-5,直到动画系列完成为止。

下面的程序(在Visual C + +中)演示了动画的实际页面,由读者设计动画序列的例子。

# include & ltconio.h & gt

# include & ltgraph.h)

# include & lttime.h)

#定义序列中的最后一帧4 / *总帧数。* /

#为绘制操作定义DRAW 1 / *代码。* /

#定义每帧变化移动的DELTA-X 10 / *像素。* /

#定义帧之间的半秒500 / * 500毫秒延迟

。* /

#定义终止前的最大X 600 / *最大X位置。

* /

#定义设置-显示\参数

\ par-set video mode(-hres 16 color);\ par

#定义退出待办事项\ par

\ par-set video mode(-default mode);\ par

/****页面渲染和动画序列切换****/

#定义翻页(v) \ par

\ par if(v = = 0)v = 1;\ par

else v = 0;\ par

-setactivepage(v);\ par

-clear screen(-GCLEARSCREEN);\ par

-settextposition (1,16);\ par

-outtext (\ par "示例:

多页动画”);\ par

绘图帧(当前帧,像素,像素);\ par

-setvisualpage(页面);\ par

创建-延迟(半秒);\ par

int px,py;/ *当前字符位置。* /

int页面;/ *显示当前页面。* /

当前帧间;/ *显示的当前帧。* /

主()

设置-显示

循环帧();

退出待办事项

循环帧()

当前帧= 0;

px = 0;

py = 85

page = 0;

while(px & lt;= MAX-X)

当前帧+ +;

if(当前帧& gt最后一帧)

当前帧= 2;

翻页(第页)

px = px+DELTA-X;

current-frame = 1;

翻页(第页)

绘图框架(框架,x,y)

int帧,x,y;

开关(框架)

案例1:

frame-1 (DRAW,x,y);

打破;

案例二:

帧-2(绘制,x,y);

打破;

案例三:

帧-3(绘制,x,y);

打破;

案例4:

帧-4(绘制,x,y);

打破;

创建延迟(td)

/ **带延迟(td)函数的Borland c++ * */

int td

time-t ts1,ts2

ts2 = ts 1 = clock();

while(ts 1+TD & gt;ts2)

ts2 = clock();

73 tupmop 1