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

更新时间:2023-12-31 18:10:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

精品文档

一、屏幕和视口设置与清除函数

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(\

printf(\ 精品文档

精品文档

二、调色板和颜色函数

进行图形显示或绘图,除了要知道用什么显示卡以及相应的图形驱动程序外,还必须了解它们支持什么样的调色板颜色。

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(深灰) 8 BLUE(蓝色) 1 LIGHTBLUE(淡蓝) 9 GREEN(绿色) 2 LIGHTGREEN(淡绿) 10 CYAN(青色) 3 LIGHTCYAN(淡青) 11 RED(红色) 4 LIGHTRED(淡红) 12 MAGENTA(品红) 5 LIGHTMAGENTA(粉红) 13 BROWN(棕色) 6 YELLOW(黄色) 14 LIGHTGRAY(淡灰) 7 WHITE(白色) 15

-----------------------------------------------------------------

调用该函数,将改变整个屏幕的颜色,如果新的背景色与原来屏幕的图形颜色相同,尽管图形信息不会丢失,但是看不见图形了。如果所选背景色为对比鲜明的颜色,看不见的图形就会重新清晰地显现出来。

这个函数的头文件为graphics.h 返回值: 无

例: 把背景色置为淡蓝色 setbackcolor(LIGHTBLUE);

43. setcolor() 设置颜色函数

功能: 函数setcolor()设置当前绘图颜色(或称做前景色)。 用法: 该函数调用方式为voids setcolor(int color);

说明: 参数color为选择的当前绘图颜色。在高分辨率显示模式下,选取的color是实际色彩值,也可以用颜色符号名表示。如果已经摇篮函数setpalette()改变了调色板色彩值,那么符号名就不可能产生预期作用了。

在低分辨率显示模式(320X200)下,选取的color是调色板颜色号,不是实际色彩值。 此函数相应的头文件为graphics.h 返回值: 无

例: 设置16种不同的颜色,显示16段直线: #include 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(); }

精品文档

本文来源:https://www.bwwdw.com/article/d6jx.html

Top