(整理)C语言图形编程(绘图函数-01).

  • 格式:doc
  • 大小:24.50 KB
  • 文档页数:5

C语言图形编程(三、绘图函数-01).txt女人谨记:一定要吃好玩好睡好喝好。

一旦累死了,就别的女人花咱的钱,住咱的房,睡咱的老公,泡咱的男朋友,还打咱的娃。

一、屏幕和视口设置与清除函数36. setviewport() 设置图形视口函数37. clearviewport()清除图形视口函数38. cleardevice() 清除屏幕函数39. getviewsettings() 获取图形视口设置函数二、调色板和颜色函数40. setpalette()设置调色板函数41. setallpalette()设置整个调色板函42. setbackcolor() 设置背景颜色函数43. setcolor() 设置颜色函数44. getbkcolor() 返回背景色函数45. getcolor() 返回当前绘图颜色46. getmaxcolor()返回最大颜色值函数47. getpalette() 获取调色板函数48. getpalettesize() 返回调色板大小函数49. getdefaultpalette() 获取缺省调色板函数三、屏幕位置函数50. getmaxx()返回最大x坐标函数51. getmaxy() 返回最大y坐标函数52. getx() 返回x坐标函数53. gety() 返回y坐标函数54. moveto()函数55. moverel() 相对移动函数----------------------------------------------------Borland C++提供了一整套综合性的图形函数,上节介绍了其中有关图形显示的函数,本节介绍其中的绘图函数,下节将介绍它的图形文本函数。

一般绘图时,首先要清除屏幕,设置图形视口,设置绘图颜色,然后在屏幕上某个位置画点或直线或曲线等。

下面给出具有这些功能的函数。

一、屏幕和视口设置与清除函数36. setviewport() 设置图形视口函数功能:函数setviewport() 设置当前图形视口。

用法:函数调用方式为void setviewport(int left,int top,int right,int bottom,int clip);说明:参数left,top是左上角坐标,right,bottom是右下角坐标,它们都是绝对屏幕坐标。

传给setviewport()的第五个参数是clip,如果clip为1,则超出视口的输出图形自动被裁剪掉,即所有作图限制于当前图形视口之内,如果clip为0,则不做裁剪,即作图将无限制地扩展于视口周界之外,直到屏幕边界。

若无效参数传入setviewport(),则graphresult()函数返回值-11,先前视口设置仍有效。

setviewport()函数的对应头文件为 graphics.h返回值:无例:建立对角为(6,6)和(88,88)的视口,并带有裁剪功能:setviewport(6,6,88,88,1);37. clearviewport()清除图形视口函数功能:函数clearviewport()清除当前图形视口,并把光标从当前位置移到原点(0,0)。

用法:该函数调用方式为void clearviewport(void);说明:此函数调用执行后,当前图形视口将不复存在。

这个函数对应的头文件是graphics.h返回值:无例:清除当前图形视口,但并非整个屏幕:clearviewport();38. cleardevice() 清除屏幕函数功能:函数cleardevice() 清除整个屏幕,并且将当前位置移到屏幕原点。

用法:此函数调用方式为void cleardevice(void);说明:该函数类似于文本模式下的函数clrscr(),但clrscr()函数不能在图形方式下工作;同样cleardevice()函数不能在文本模式下工作。

这个函数相应的头文件为graphics.h返回值:无例:清除当前整个屏幕:cleardevice();39. getviewsettings() 获取图形视口设置函数功能:函数getviewsettings()返回当前图形视口坐标和裁剪标志,坐标是绝对屏幕坐标,裁剪标志 1或 0。

用法:此函数调用方式为void getviewsettings(struct viewporttype *info);说明:该函数执行后,把有关当前视口的信息装入info指向的viewporttype型结构中。

viewporttype结构定义如下:struct viewporttype {int left,top,right,bottom;int clipflag;}这里left,top中存放视口左上角坐标,right,bottom中存放视口右下角坐标,clipflag 中存放裁剪标志,若clipflag为1 ,执行裁剪以防止超出视口边界,如果clipflag为0,则不对超出边界输出作裁剪。

getviewsettings()函数对应的头文件是graphics.h返回值:无例:显示当前视口角点坐标:struct viewporttype info;getviewsettings(&info);printf("left:%d top:%d\n",info.left,info.top);printf("right:%d bottom:%d\n",info.right,info.bottom);二、调色板和颜色函数进行图形显示或绘图,除了要知道用什么显示卡以及相应的图形驱动程序外,还必须了解它们支持什么样的调色板颜色。

40. setpalette()设置调色板函数功能:函数setpalette()可对调色板上的颜色的色彩值重新设定。

用法: setpalette()函数调用方式为void setpalette(int value,int color);说明:参数value为色彩值,color为色彩值相应的颜色名。

当需要将一颜色指定为一色彩值地,即可调用此函数来设置。

表1-7 预先定义的调色板与色彩-----------------------------------------------------------------调色板色彩0 色彩1 色彩2 色彩3-----------------------------------------------------------------C0 黑色淡绿红浅黄色C1 黑色淡青粉红白色C2 黑色绿色红色棕色C3 黑色青色品粉红淡灰色-----------------------------------------------------------------这个函数相对应的头文件为graphics.h返回值:无41. setallpalette()设置整个调色板函数功能:函数setallpalette()对某个调色板上的所有颜色重新设定彩色值。

用法:函数调用方式为void setallpalette(struct palettetype *p);说明:在低分辨率图形显示模式下,该函数无效。

若函数调用成功,则把p指向的palettetype 结构中的色彩值设置为当前调色板所有颜色的新色彩值。

palettetype结构定义如下:struct palettetype {unsigned char size;signed char color[16];};这里必须把size设置为调色板颜色的数目,并把每个色彩值都装入color数组相应元素中,然后才可用于调用函数。

此函数对应的头文件是graphics.h返回值:无例:把16色的EGA/VGA显示卡调色板改为其前16种颜色:struct palettetype;int i;for(i=0;i<16;i++) p.color[i]=i;p.size=16;setallpalette(&p);42. setbackcolor() 设置背景颜色函数功能:函数setbackcolor()把当前调色板颜色的第一个值改成指定的颜色值,以设置背景颜色。

用法:此函数调用方式为void setbackcolor(int color);说明:参数color为指定的背景色,其有效值可以是颜色符号名,也可以是色彩值。

表1-8列出了背景颜色供选取。

表1-8 背景颜色值----------------------------------------------------------------- 颜色符号名色彩值颜色符号名色彩值-----------------------------------------------------------------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-----------------------------------------------------------------调用该函数,将改变整个屏幕的颜色,如果新的背景色与原来屏幕的图形颜色相同,尽管图形信息不会丢失,但是看不见图形了。

如果所选背景色为对比鲜明的颜色,看不见的图形就会重新清晰地显现出来。

这个函数的头文件为graphics.h返回值:无例:把背景色置为淡蓝色setbackcolor(LIGHTBLUE);43. setcolor() 设置颜色函数功能:函数setcolor()设置当前绘图颜色(或称做前景色)。

用法:该函数调用方式为voids setcolor(int color);说明:参数color为选择的当前绘图颜色。

在高分辨率显示模式下,选取的color是实际色彩值,也可以用颜色符号名表示。

如果已经摇篮函数setpalette()改变了调色板色彩值,那么符号名就不可能产生预期作用了。

在低分辨率显示模式(320X200)下,选取的color是调色板颜色号,不是实际色彩值。

此函数相应的头文件为graphics.h返回值:无例:设置16种不同的颜色,显示16段直线:#include<graphics.h>void main(){int driver,mode;int i;driver=DETECT;mode=0;initgraph(&driver,&mode,""); moveto(0,200);for(i=0;i<16;i++){setcolor(i);linerel(20,0);}getch();restorecrtmode();}。