C图形函数.ppt
计算机图形学马自萍C语言图形函数及其用法一、图形系统管理 1、图形方式初始化 Turbo C2.0语言使用函数initgraph来完成图形初始化。其格式为:void intitgraph(int*gdriver,int*gmode,char*path);其中参数gdriver和gmode是两个整型变量的地址,而path是一个字符串变量。设置当前路径。gdriver和gmode的取值参阅其它书。图形初始化的例子 int gdriver=9,gmode=2;initgraph(&gdriver,&gmode,”c:tc”);2、关闭图形方式 在图形程序运行结束后,又要回到文本方式进行其他工作,必须关闭图形方式。关闭图形方式使用函数closegraph。格式为:void closegraph();二、屏幕管理 1、设置视图区 void setviewport(int l,int t,int r,int b,int c);2、清除视图区 void clearviewport();3、清屏 void cleardevice();三、绘图函数 1、直线类函数 void line(int xs,int ys,int xe,int ye);void lineto(int x,int y);void moveto(int x,int y);void linerel(int dx,int dy);void moverel(int dx,int dy);2、圆弧类函数 void circle(int x,int y,int r);void arc(int x,int y,int angs,int ange,int r);void elliipse(int x,int y,int angs,int ange,int xr,intyr);3、多边形 void restangle(int xl,int yt,int xr,int yb);void drawpoly(int nps,int*pxy);#includevoid mydraw()line(160,120,480,120);line(480,120,480,360);line(480,360,160,360);line(160,360,160,120);main()int gdriver=DECTECT,gmode;initgraph(&gdriver,gmode,”c:tc”);cleardevice();mydraw();getch();closegraph();C语言图形函数及其用法-8void mydraw1()moveto(160,120);lineto(480,120);lineto(480,360);lineto(160,360);lineto(160,120);void mydraw2()moveto(160,120);linerel(320,0);lineto(0,240);lineto(-320,0);lineto(0,-240);void mydraw3()circle(320,240,200);arc(320,240,0,120,100);ellipse(320,240,0,360,160,120);rectangle(100,100,450,400);四、图形的属性控制 图形的属性控制包括颜色和线型。颜色又分为前景色和背景色 void setbkcolor(int color);void setcolor(int color);其中color可以为0,115中的一个值。符号名数值颜色BLACKBLUEGREENCYANREDMAGENTABROWNLIGHTGRAYDARKGRAY LIGHT BLUE0123456789黑色蓝色绿色青色红色紫红色棕色浅灰色深灰色浅蓝色符号名数值颜色LIGHTGREENLIGHTCYANLIGHTREDLIGHTMAGENTAYELLOWWHITE101112131415浅绿色浅青色浅青色浅紫色黄色白色 void setlinestyle(int sty,unsigned int pat,int b);sty:画直线的类型,取值为0、1、2、3、4。pat:通常取0。b:线的宽度,取值为1、3。main()int gdriver=DECTECT,gmode;initgraph(&gdriver,gmode,”c:tc”);cleardevice();setbkcolor(15);setcolor(4);setlinestyle(0,0,3);mydraw();getch();closegraph();五、充填 void setfillstyle(int pattern,int color);pattern:充填模式,取值为0到12。color:充填的颜色。void floodfill(int x,int y,int bcolor);(x,y)void fillellipse(int x,int y,int rx,int ry);画出一实心椭圆 void sector(int x,int y,int angs,int ange,int rx,int ry);画出一实心椭圆扇区 void fillpoly(int nps,int*pxy);画并充填一多边形。#includemain()int gdriver=DETECT,gmode;initgraph(&gdriver,&gmode,);setbkcolor(15);setcolor(4);ellipse(320,240,0,360,300,200);setfillstyle(1,6);putpixel(320,240,6);floodfill(320,240,4);getch();closegraph();#includemain()int gdriver=DETECT,gmode;initgraph(&gdriver,&gmode,);setbkcolor(15);setcolor(4);setfillstyle(1,6);fillellipse(320,240,300,200);getch();closegraph();六、图形方式下的文本1.BGI字体 在图形方式下,BGI提供了两种输出文本的方式,一种是位映象字符(或称点阵字符);另一种是笔划字体(或称矢量字符)。其中位映象字符为缺省方式。2.文本输出(1)settextstyle函数函数settextstyle用于在使用笔划字体之前装入字体文件。其调用格式为:settextstyle(font,direction,csize);函数所需的三个参数,其含义如下:符号名数值含义DEFAULT_FONTTRIPLEX_FONTSMALL_FONTSANSSERIF_FONTGOTHIC_FONT0123488位图字体三重矢量字体小号矢量字体无衬线矢量字体哥特矢量字体 font:direction:符号名数值含义HORIZ_DIRVERT_DIR01从左到右输出从上到下输出csize:是一个整数,表示字符的大小。其取值范围是1-10。(2)outtext函数函数outtext用于在当前位置输出一个文本字符串。outtext(*text);(3)outtextxy函数函数outtext用于在指定位置输出一个文本字符串。outtextxy(x,y,*text);参数x,y:为指定位置;text为字符串。