一、屏幕和视口设置与清除函数
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;