/* 线型线宽 XXXK.C 程序设计:谢春 2000.1.1.*/ /* a, b : 背景颜色 a=1--9 画笔颜色 b=14--9 */ /* x, y : 水平移动图形 x=0--639 垂直移动图形 y=0--479 */ /* r1,r2: 水平方向半径 r1=0--320 垂直方向半径 r2=0--240 */ /* i, j : 心形曲线叶片 i=1--24 心形曲线弧度 j=0--2*PI */ #include"graphics.h" /*调用图形库函数 */ #include"math.h" /*调用数学函数 */ #include"stdio.h" /*调用标准I/O函数*/ #define PI 3.141596 /*宏定义PI字符串 */ main() /*主函数*/ { int a=1,b=2,c,f,h=8,m,r,w,x=155,xx,y=252,z; float j0,j,n=0,t; /*定义单精度浮点型变量*/ int gdriver=DETECT,gmode; /*定义整型变量gdriver,gmode*/ initgraph(&gdriver,&gmode,"c:\\tc"); /*定义变量后,初始化图形系统*/ cleardevice(); setbkcolor(a); /*背景颜色*/ printf("\n"); printf("\n"); printf(" 线型:实线 点线 中心线 虚线\n"); printf(" 线宽:1个像素宽 3个像素宽\n"); printf(" C 语言图形程序设计\n"); printf("\n"); printf(" 线型线宽函数\n"); printf(" setlinstyle(linestyle,pattern,width)\n"); printf(" 直线类型\n"); printf(" linestyle(0,1,2,3,4)\n"); printf(" 实线,点线,中心线,虚线,自定义线.\n"); printf(" 定义线型 pattern\n"); printf(" 系统预定义参数取 0,\n"); printf(" 用户自定义参数取 1.\n"); printf(" 直线宽度 width(1,3)\n"); printf(" 1个像素宽,3个像素宽.\n"); printf("\n"); printf(" 按任意键开始演示线型线宽 !\n"); setcolor(3); setlinestyle(0,0,3); /*实线线宽3*/ rectangle(2,2,637,477); /*绘制图纸边框*/ setcolor(2); setlinestyle(0,0,1); /*实线线宽1*/ rectangle(6,6,318,473); /*绘制左窗口框*/ rectangle(322,6,633,473); /*绘制右窗口框*/ getch(); /*画一幅,擦一幅*/ for(z=24;z<=34;z+=5) /*设置循环演示次数*/ { setviewport(323,7,632,472,1); /*设置右窗口*/ setcolor(14); setlinestyle(2,0,1); line(0,y,310,y); setlinestyle(3,0,1); line(x,70,x,435); for(r=40;r<=160;r+=40) { b=r/40+8;m=360/z,xx=3-r/50,w=r/50; setcolor(b); setlinestyle(xx,0,w); moveto(x-0.88*r-h,y); for (j0=0;j0<=360;j0+=5) /*绘制梯形波图形*/ { j=j0*PI/180; f=fmod(j0,m); if(f>0) h=-h; lineto (x-(0.88*r+h)*cos(j),y-(r+h)*sin(j)); } for (t=0;t<=9999;t+=0.01) { n=n+t; /*延时控制*/ } } getch(); clearviewport(); } closegraph(); /*关闭图形系统,返回文本模式*/ }