Turbo C常用绘图命令简介.doc_第1页
Turbo C常用绘图命令简介.doc_第2页
Turbo C常用绘图命令简介.doc_第3页
Turbo C常用绘图命令简介.doc_第4页
Turbo C常用绘图命令简介.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

TC常用命令简介Turbo C常用绘图命令简介一、屏幕(设备)坐标系与平面坐标的区别略一个简单的绘图程序由进入图形方式、绘图和退出图形方式三个组成部分。二、进入图形方式进入图形方式由图形方式检查和图形初始化两个步骤组成。图形方式检查:检查适配器。图形初始化:同一适配器有不同的模式可供选择。首先在进入图形方式之前须调用头文件:graphics.h。即在主函数前使用语句:#include进入图形方式使用的命令如下:void initgraph(int * gdriver,int *gmode,char *gpath);功能:初始化图形系统。说明: 1) 函数中参数gdriver指向图形驱动程序(或者等价值)。若使用DETECT(即等价值0)时,initgraph()函数自动检测当前计算机中装有的显示卡类型,并且选用最大分辨率的显示模式。2)参数gmode指向显示模式gmode所指的值必须是有效模式之一,一旦gdriver=0,则自动选择最佳模式。3)参数gpath指向图形驱动程序所在的路径,例如gpath=C:TCBG1.若没有指定路径,就在当前目录下寻找。 一般图形驱动程序包含在.BGI文件中,这些文件是系统可以得到的。例: 调用initgraph()自动检测硬件图形系统,并选用最大分辨率显示模式。 int gd,gm; gd=DETECT; initgraph(&gd,&gm,);三、绘图一般绘图时,首先要清除屏幕,设置图形视口,设置绘图颜色,然后在屏幕上某个位置画点或直线或曲线等。下面给出具有这些功能的函数。1、屏幕和视口设置与清除函数(1)setviewport() 设置图形视口函数功能: 函数setviewport() 设置当前图形视口。用法: 函数调用方式为void setviewport(int left,int top,int right,int bottom,int clip);说明: 参数left,top是左上角坐标,right,bottom是右下角坐标,它们都是绝对屏幕坐标。如果参数clip为1,则超出视口的输出图形自动被裁剪掉,即所有作图限制于当前图形视口之内,如果clip为0,则不做裁剪,即作图将无限制地扩展于视口周界之外,直到屏幕边界。若无效参数传入setviewport(),则graphresult()函数返回值-11,先前视口设置仍有效。例: 建立对角为(6,6)和(88,88)的视口,并带有裁剪功能: setviewport(6,6,88,88,1);(2) clearviewport()清除图形视口函数功能: 函数clearviewport()清除当前图形视口,并把光标从当前位置移到原点(0,0)。用法: 该函数调用方式为void clearviewport(void);说明: 此函数调用执行后,当前图形视口将不复存在。例: 清除当前图形视口,但并非整个屏幕: clearviewport();(3) cleardevice() 清除屏幕函数功能: 函数cleardevice() 清除整个屏幕,并且将当前位置移到屏幕原点。用法: 此函数调用方式为void cleardevice(void);说明: 该函数类似于文本模式下的函数clrscr(),但clrscr()函数不能在图形方式下工作;同样cleardevice()函数不能在文本模式下工作。例: 清除当前整个屏幕: cleardevice();2、设置颜色函数(1) setbkcolor() 设置背景颜色函数功能: 函数setbkcolor()把当前调色板颜色的第一个值改成指定的颜色值,以设置背景颜色。用法: 此函数调用方式为void setbkcolor(int color);说明: 参数color为指定的背景色,其有效值可以是颜色符号名,也可以是色彩值。下表列出了背景颜色供选取。颜色符号名 色彩值 颜色符号名 色彩值-BLACK(黑色) 0 DARKGRAY(深灰) 8BLUE(蓝色) 1 LIGHTBLUE(淡蓝) 9GREEN(绿色) 2 LIGHTGREEN(淡绿) 10CYAN(青色) 3 LIGHTCYAN(淡青) 11RED(红色) 4 LIGHTRED(淡红) 12MAGENTA(品红) 5 LIGHTMAGENTA(粉红) 13BROWN(棕色) 6 YELLOW(黄色) 14LIGHTGRAY(淡灰) 7 WHITE(白色) 15- 调用该函数,将改变整个屏幕的颜色,如果新的背景色与原来屏幕的图形颜色相同,尽管图形信息不会丢失,但是看不见图形了。如果所选背景色为对比鲜明的颜色,看不见的图形就会重新清晰地显现出来。例: 把背景色置为淡蓝色 setbkcolor(LIGHTBLUE);(2)setcolor() 设置颜色函数功能: 函数setcolor()设置当前绘图颜色(或称做前景色)。用法: 该函数调用方式为void setcolor(int color);说明: 参数color为选择的当前绘图颜色。例: 设置16种不同的颜色,显示16段直线:#includevoid main() int driver= DETECT,mode; int i; initgraph(&driver,&mode,); moveto(0,200); for(i=0;i16;i+) setcolor(i); linerel(20,0); getch();(3)getbkcolor() 返回背景色函数功能: 函数getbackcolor()返回当前背景颜色。用法: 函数调用方式为int getbackcolor(void);说明: 调用该函数后,获得背景色,但其值不一定是调色板上的色彩值。返回值: 返回当前绘图色彩值。例: 返回当前背景色彩值: printf(background color is %d, getbkcolor();(4). getcolor() 返回当前绘图颜色用法: 此函数调用方式为int getcolor(void);返回值: 返回当前绘图颜色值。3.屏幕位置函数(1) getx() 返回x坐标函数功能: 函数getx()返回当前图形模式下当前位置的x坐标(水平像素坐标)。用法: 此函数调用方式为int getx(void);说明: 这里坐标是相对于当前图形视口的,如果没有设置图形视口,那么缺省的图形视口为整个屏幕。(2) gety() 返回y坐标函数功能: 函数gety()返回图菜模式下当前位置的y坐标(垂直像素坐标)。用法: 此函数调用方式为int gety(void);说明: 函数返回的坐标是相对于当前图形视口的,如果没有设置图形视口,那么缺省的图形视口为整个屏幕。例: 显示图形模式下当前位置的x,y坐标值:printf(x: %d, y: %d, getx(),gety();(3) moveto()函数功能: 函数moveto()将当前位置移动到指定坐标的位置例: 把当前位置移到(66,88)位置上: moveto(66,88);(4)moverel() 相对移动函数功能: 函数moverel()根据指定的偏移量,将当前位置移动一个相对距离(即偏移量大小的距离),成为新的当前位置。用法: 此函数调用方式为void moverel(int dx,int dy);说明: 参数dx为x方向相对移动距离dy为y方向相对移动距离。相对移动对图形应用程序,往往要比绝对移动方便一些。例: 下面的程序,当语句执行到当前位置在(90,90),则执行后将移动到(100,120)的位置上。即x方向相对移动10,y方向相对移动30:moverel(10,30);4.绘图函数(1)putpixel() 画像素点函数功能: 函数putpixel() 在图形模式下屏幕上画一个像素点。用法: 函数调用方式为void putpixel(int x,int y,int color);说明: 参数x,y为像素点的坐标,color是该像素点的颜色,它可以是颜色符号名,也可以是整型色彩值。例: 在屏幕上(6,8)处画一个红色像素点: putpixel(6,8,RED);(2)getpixel()返回像素色函数功能: 函数getpixel()返回像素点颜色值。用法: 该函数调用方式为int getpixel(int x,int y);例: 把屏幕上(8,6)点的像素颜色值赋给变量color。 color=getpixel(8,6);(3) 直线函数有三个画直线的函数,即line(),lineto(),linerel()。line() 画线函数功能: 函数line()使用当前绘图色、线型及线宽,在给定的两点间画一直线。用法: 该函数调用方式为void line(int startx,int starty,int endx,int endy);说明: 参数startx,starty为起点坐标,endx,endy为终点坐标。lineto() 画线函数功能: 函数lineto()使用当前绘图色、线型及线宽,从当前位置画一直线到指定位置。用法: 此函数调用方式为void lineto(int x,int y);说明: 参数x,y为指定点的坐标,函数调用后,当前位置改变到指定点(x,y)。linerel() 相对画线函数功能: 函数linerel() 使用当前绘图色、线型及线宽,从当前位置开始,按指定的水平和垂直偏移距离画一直线。用法: 这个函数调用方式为void linerel(int dx,int dy);说明: 参数dx,dy分别是水平偏移距离和垂直偏移距离。函数调用后,当前位置变为增加偏移距离后的位置,例如,原来的位置是(8,6),调用函数linerel(10,18)后,当前位置为(18,24)。例: 下面的程序为画线函数调用实例:#includevoid main() int driver=DETECT,mode; initgraph(&driver,&mode,); setcolor(15); line(66,66,88,88); lineto(100,100); linerel(36,64); getch();(4)多边形函数rectangle() 画矩形函数功能: 函数rectangle() 用当前绘图色、线型及线宽,画一个给定左上角与右下角的矩形(正方形或长方形)。用法: 此函数调用方式为void rectangle(int left,int top,int right,int bottom);说明: 参数left,top是左上角点坐标,right,bottom是右下角点坐标。drawpoly() 画多边形函数功能: 函数drawpoly() 用当前绘图色、线型及线宽,画一个给定若干点所定义的多边形。用法: 此函数调用方式为void drawpoly(int pnumber,int *points);说明: 参数pnumber为多边形的顶点数;参数points指向整型数组,该数组中是多边形所有顶点(x,y)坐标值,即一系列整数对,x坐标值在前。显然整型数组的维数至少为顶点数的2倍,在定义了多边形所有顶点的数组polypoints时,顶点数目可通过计算sizeof(polypoints)除以2倍的sizeof(int)得到,这里除以2倍的原因是每个顶点有两个整数坐标值。另外有一点要注意,画一个n个顶点的闭合图形,顶点数必须等于n+1,并且最后一点(第n+1)点坐标必须等于第一点的坐标。例: 下面的程序画一个封闭星形图与一个不封闭星形图:#includevoid main()int driver=DETECT,mode;static int polypoints118=100,100,110,120,100,130,120,125,140,140,130,120, 140,110,120,115,100,100;static int polypoints218=180,100,210,120,200,130,220,125,240,140,230,120, 240,110,220,115,220,110;initgraph(&driver,&mode,); drawpoly(9,polypoints1); drawpoly(9,polypoints2); getch(); restorecrtmode();(5) circle()画圆函数功能: 函数circle()使用当前绘图色并以实线画一个完整的圆。用法:该函数调用方式为void circle(int x,int y,int radius);说明:参数x,y为圆心坐标,radius为圆半径,用像素个素表示。四、退出图形方式1.restorecrtmode() 恢复文本显示模式函数功能: 函数restrecrtmode()将显示模式恢复到调用initgraph()时检测出的初始文本模式。用法: 这个函数调用方式为void restorecrtmode(void);说明: 函数restorecrtmode()和setgraphmode()函数一起使用,可以实现文本与图形显示之间的切换。返回值: 无2.setgraphmode() 设置图形模式函数 功能: 函数setgraphmode()用当前图形驱动程序有效的图形模式调用,一旦被调用,setgraphmode()选择一个新的图形模式。注意,图形显示模式必须事先由initgraph()初始化。用法: 该函数调用方式为void setgraphmode(int mode);说明: 参数mode调用时为指定的模式值。3.closegraph()关闭图形模式函数功能: 函数closegraph()将系统图形模式关闭,复位到initgraph()初始文本模式,并且释放图形驱动程序、字体和内部缓冲区所占用的系统内存。用法: 这个函数调用方式为void closegraph(void);说明: 当用户的程序既用到图形输出又用到非图形输出时,应该调用此函数。特别是程序多次调用initgraph()函数的情况,要相应地调用closegraph函数,释放调用initgraph()所占用的内存,否则内存很快就满了,程序无法运行,如果程序结束,也可以用restorecrtmode()函数代替该函数,这样任何分配的内存都将释放。五、Tubro C绘图程序实例例1花边小桌布在半径为整数r的圆周上,等距地放置n个顶点,然后用直线把这个n个顶点互相连接起来,当n足够大时,所得到图形像一块带花边的小桌布。源代码:#include#includevoid main() int gmode,gdrive=DETECT;/*#include*/int x,y,r;int i,j,n; float q; int a100,b100; initgraph(&gdrive,&gmode,); printf(input n,x,y,r:); scanf(%d,%d,%d,%d,&n,&x,&y

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论