多变的立方体
2008-03-08 12:28:14 来源:WEB开发网核心提示:多变的立方体实例效果与目的程序运行时,显示一个立方体,多变的立方体,以白色为填充色,当按下键盘上的任意键时,说明:bar3d()函数中,长方体第三维的方向不随任何参数而变,矩形发生改变,当再按一下键盘上的任意键时
多变的立方体
实例效果与目的 程序运行时,显示一个立方体,以白色为填充色,当按下键盘上的任意键时,矩形发生改变,当再按一下键盘上的任意键时,则这个立方体图案又发生了改变。 本实例的目的是让读者把握函数bar与函数bar3d的具体的应用。 当再按一下键盘上任意键时,会发现矩形区域中的线条变粗了。当再按一下键盘上的任意一个键时,则就会发现屏幕图案改变。
程序说明 C语言提供了一些先画出基本图形轮廓、再按规定图模和颜色填充整个封闭图形的函数。 在没有改变填充方式时,C语言以默认方式填充。下面逐一介绍这些函数。 1、函数bar 调用格式:void far bar(int x1,int y1,int x2,int y2); 作用:确定一个以(x1,y1)为左上角、(x2,y2)为右下角的矩形窗口,再按规定图模和颜色填充。 说明:此函数不画出边框,所以填充色的边缘即相当于边框。 2、函数bar3d 调用格式:void far bar3d(int x1,int y1,int x2,int y2,int depth,int topflag); 作用:topflag为非0时,画出一个三维的长方体。当topflag为0时,三维图形不封顶,实际上很少这样使用。 说明:bar3d()函数中,长方体第三维的方向不随任何参数而变,即始终为450的方向。
制作步骤 1、设置EGA显示器分辨率: int driver=EGA,mode=1; 2、设置刻度值: settextjustify(CENTER_TEXT,CENTER_TEXT); for(i=0;i<=5;i++) {line(20,j,40,j); itoa(i,buffer,10); outtextxy(10,j,buffer); j-=ystep; } 3、纵坐标标注 gotoxy(j/8,22); PRintf("%s","month"); 4、源代码与注释: #include<graphics.h>
#include<stdlib.h>
#include<stdio.h>
#include<conio.h> /*预定义函数*/
int main(void)
{ /*request auto detection*/
int gdriver=DETECT,gmode,errorcode;
int midx,midy,i; /*initialize graphics,local variables*/
initgraph(&gdriver,&gmode,"");
/*read result of initialization*/
errorcode=graphresult();
if (errorcode!=grOk)
{ /*an error occurred*/
printf("Graphics error:%s ",grapherrormsg(errorcode));
printf("Press any key to halt:");
getch();
exit(1);
} /*terminate with error code*/
midx=getmaxx()/2;midy=getmaxy()/2;
/*loop through the fill patterns*/
for (i=EMPTY_FILL;i<USER_FILL;i++)
{ /*set the fill style*/
setfillstyle(i,getmaxcolor()); /*draw the 3-d bar*/
bar3d(midx-50,midy-50,midx+50,midy+50,10,1);
getch();} /*clean up*/
closegraph();
return 0 ;
}
实例效果与目的 程序运行时,显示一个立方体,以白色为填充色,当按下键盘上的任意键时,矩形发生改变,当再按一下键盘上的任意键时,则这个立方体图案又发生了改变。 本实例的目的是让读者把握函数bar与函数bar3d的具体的应用。 当再按一下键盘上任意键时,会发现矩形区域中的线条变粗了。当再按一下键盘上的任意一个键时,则就会发现屏幕图案改变。
程序说明 C语言提供了一些先画出基本图形轮廓、再按规定图模和颜色填充整个封闭图形的函数。 在没有改变填充方式时,C语言以默认方式填充。下面逐一介绍这些函数。 1、函数bar 调用格式:void far bar(int x1,int y1,int x2,int y2); 作用:确定一个以(x1,y1)为左上角、(x2,y2)为右下角的矩形窗口,再按规定图模和颜色填充。 说明:此函数不画出边框,所以填充色的边缘即相当于边框。 2、函数bar3d 调用格式:void far bar3d(int x1,int y1,int x2,int y2,int depth,int topflag); 作用:topflag为非0时,画出一个三维的长方体。当topflag为0时,三维图形不封顶,实际上很少这样使用。 说明:bar3d()函数中,长方体第三维的方向不随任何参数而变,即始终为450的方向。
制作步骤 1、设置EGA显示器分辨率: int driver=EGA,mode=1; 2、设置刻度值: settextjustify(CENTER_TEXT,CENTER_TEXT); for(i=0;i<=5;i++) {line(20,j,40,j); itoa(i,buffer,10); outtextxy(10,j,buffer); j-=ystep; } 3、纵坐标标注 gotoxy(j/8,22); PRintf("%s","month"); 4、源代码与注释: #include<graphics.h>
#include<stdlib.h>
#include<stdio.h>
#include<conio.h> /*预定义函数*/
int main(void)
{ /*request auto detection*/
int gdriver=DETECT,gmode,errorcode;
int midx,midy,i; /*initialize graphics,local variables*/
initgraph(&gdriver,&gmode,"");
/*read result of initialization*/
errorcode=graphresult();
if (errorcode!=grOk)
{ /*an error occurred*/
printf("Graphics error:%s ",grapherrormsg(errorcode));
printf("Press any key to halt:");
getch();
exit(1);
} /*terminate with error code*/
midx=getmaxx()/2;midy=getmaxy()/2;
/*loop through the fill patterns*/
for (i=EMPTY_FILL;i<USER_FILL;i++)
{ /*set the fill style*/
setfillstyle(i,getmaxcolor()); /*draw the 3-d bar*/
bar3d(midx-50,midy-50,midx+50,midy+50,10,1);
getch();} /*clean up*/
closegraph();
return 0 ;
}
[]
- ››多变的立方体
更多精彩
赞助商链接