谁能给我发一篇关于计算机的英文论文,翻译一下?
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