TurboC绘图TC图形程序设计1TC简介1.1TC特点BolandTurboC2.0,2.1以及ForWindows1.2对环境的支持能力VGA/EGA显示适配器图形显示器的工作方式:图形方式与文体方式在使用时默认是文体方式,要画图首先要进行图形驱动(初始化)2TC的图形函数及其用法TC的图形函数定义原型在graphics.h中,在TC中要画图必须包含该头文件2.1图形系统管理(1)图形初始化Voidinitgraph(int*gdriver,int*gmode,constchar*path);gdriver:用于指定图形驱动程序类型(一般使用DETECT)gmode:设置图形显示模式,在DETECT下自动获取path:指定图形驱动程序所在路径,空格表示取默认值一般调用方式:intgdriver=DETECT,gmode;initgraph(&gdriver,&gmode,””);(2)关闭图形方式closegeaph()2.2屏幕管理(1)设置视图区setviewport(x1,y1,x2,y2,c);c=1时裁剪边界注意:视图区建立后所有画图坐标是相对于视图区的,视图区左上角为(0,0)getmaxx();getmaxy();getx();gety();(2)清除视图区clearviewport();清除当前视图区(3)清屏cleardevice();2.3绘图函数(1)点和直线putpixel(x,y,c);line(x1,y1,x2,y2);lineto(x,y);linerel(dx,dy);moveto(x,y);moverel(dx,dy);(2)圆弧类circle(x,y,r);arc(x,y,angs,ange,r);ellipse(x,y,angs,ange,rx,ry);(3)多边形类rectangle(x1,y1,x2,y2);左上--右下drawpoly(nps,*pxy);pxy数据结构:[x1,y1,x2,y2,……,xn,yn](n=nps)2.4图形属性设置setbkcolor(color);color:15种标准色setcolor(color);setlinetype(style,pattern,width);style=0,1,2,3,4pattern=0or其它;当style=4时pattern非0width=1or32.5充填setfillstyle(pattern,color);pattern=0,1,2,……,12floodfill(x,y,bcolor);bcolor:区域边界颜色fillellipse(x,y,rx,ry)sector(x,y,angs,ange,rx,ry);fillpoly(nps,*pxy);2.6写文本(1)BGI字体点阵字矢量字(.chr文件在BGI目录下)(2)文本输出settextstyle(font,direction,csize);font=0,1,2,3,4direction=0,1csize=1~10outtext(*text);outtextxy(x,y,*text);3TC绘图程序示例直线类图exp28exp29exp210圆形类exp211exp212exp213曲线类exp214exp215文字exp2164没有TC的环境下运行程序为确保程序在没有TC的环境下可以运行,可对新的TC系统做如下修改:1)在TC目录下找到以下文件:bgiobj.exeegavga.bgitlib.exe2)在DOS环境下做下列操作:(1)运行:bgiobjegavga//将egavga.bgi转换为egavga.obj(2)运行:tliblib\graphics.lib+egavga.obj//将egavga.obj加入库文件graphics.lib中(3)在绘图程序中做相应处理(用红色标在程序中)#includestdio.h#includestdlib.h#includegraphics.hmain(){inti,j,c,x=50,y=50,k=1;intgdriver=DETECT,gmode;printf(inputcolornumber.\n);scanf(%d,&c);registerbgidriver(EGAVGA_driver);//注册图形驱动程序initgraph(&gdriver,&gmode,);//初始化函数中不必写驱动程序位置cleardevice();setbkcolor(11);setcolor(c);for(j=1;j=2;j++){for(i=0;i4;i++){setlinestyle(i,0,k);rectangle(x,y,x+210,y+80);x=x+110;y=y+40;}k=3;x=50;y=250;}getch();closegraph();}