飘动的红旗

飘动的红旗

对于某些特定的适配器,如VGA,EGA和HERCULES等都支持多个图形页的显示。Turbo C
为我们提供的库函数setactivepage( )可以用来选择活动的图形页,而setvisualpage()
则是用来选择可见的图形页。
下面的程序就是利用快速切换活动页的方法,来展示一面飘动的红旗:

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <graphics.h>
#include <math.h>
int color=4,i;
int start_x,end_x,start_y,end_y;
int X[480],Y[640];
void hor_wave_line(int x0,int y1,int x1,int a,int k);
void ver_wave_line(int x0,int y0,int y1,int a,int k);
main( )
{
int driver=EGA,mode=EGAHI;
initgraph(&driver,&mode,"");
cleardevice();
start_x=200;
start_y=50;
end_x=450;
end_y=200;
setcolor(4);
hor_wave_line(start_x,start_y,end_x,0,2);
ver_wave_line(end_x,start_y,end_y,10,3);
hor_wave_line(start_x,end_y,end_x,0,2);
line(start_x,start_y-2,start_x,end_y+5);
setfillstyle(1,14);
bar3d(start_x,start_y-5,start_x,end_y+150,2,1);
setfillstyle(1,4);
floodfill(start_x+50,start_y+50,4);
setactivepage(1);
hor_wave_line(start_x,start_y,end_x,0,4);
ver_wave_line(end_x,start_y,end_y,10,6);
hor_wave_line(start_x,end_y,end_x,0,4);
line(start_x,start_y-2,start_x,end_y+5);
setfillstyle(1,14);
bar3d(start_x,start_y-5,start_x,end_y+150,2,1);
setfillstyle(1,4);
floodfill(start_x+50,start_y+50,4);
while(! kbhit( )){
setvisualpage(1);
delay(200);
setvisualpage(0);
delay(200);
}
closegraph( );
}
void hor_wave_line(int x0,int y0,int x1,int a,int k)
{
float rad=3.1415926/180.0;
for(i=0;i<640;i++);
Y[i]=random(1)+(int)(5*sin((i*k+a)*rad));
for(i=x0;i<x1;i++)
{
moveto(i,Y[i]+y0);
lineto(i,Y[i]+y0);
}
lineto(x1,y0);
}
void ver_wave_line(int x0,int y0,int y1,int a,int k)
{
float rad=3.1415926/180.0;
randomize( );
for(i=0;i<480;i++)
X[i]=random(1)+(int)(5*sin((i*k+a)*rad));
for(i=y0+1;i<y1;i++)
{
lineto(X[i]+x0,i);
moveto(X[i]+x0,i);
}
lineto(x0,y1);
}

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值