一、屏幕和视口设置与清除函数
二、调色板和颜色函数
三、屏幕位置函数
----------------------------------------------------
一、屏幕和视口设置与清除函数
36. setviewport() 设置图形视口函数
功能: 函数setviewport() 设置当前图形视口。
用法: 函数调用方式为void setviewport(int left,int top,int right,int bottom,int clip);
说明: 参数left,top是左上角坐标,right,bottom是右下角坐标,它们都是绝对屏幕坐标。
返回值: 无
例: 建立对角为(6,6)和(88,88)的视口,并带有裁剪功能:
37. clearviewport()清除图形视口函数
功能: 函数clearviewport()清除当前图形视口,并把光标从当前位置移到原点(0,0)。
用法: 该函数调用方式为void clearviewport(void);
说明: 此函数调用执行后,当前图形视口将不复存在。
返回值: 无
例: 清除当前图形视口,但并非整个屏幕:
38. cleardevice() 清除屏幕函数
功能: 函数cleardevice() 清除整个屏幕,并且将当前位置移到屏幕原点。
用法: 此函数调用方式为void cleardevice(void);
说明: 该函数类似于文本模式下的函数clrscr(),但clrscr()函数不能在图形方式下工作;同样cleardevice()函数不能在文本模式下工作。
返回值: 无
例: 清除当前整个屏幕:
39. getviewsettings() 获取图形视口设置函数
功能: 函数getviewsettings()返回当前图形视口坐标和裁剪标志,坐标是绝对屏幕坐标,裁剪标志 1或 0。
用法: 此函数调用方式为void getviewsettings(struct viewporttype *info);
说明: 该函数执行后,把有关当前视口的信息装入info指向的viewporttype型结构中。
返回值: 无
例: 显示当前视口角点坐标:
二、调色板和颜色函数
进行图形显示或绘图,除了要知道用什么显示卡以及相应的图形驱动程序外,还必须了解它们支持什么样的调色板颜色。
40. setpalette()设置调色板函数
功能: 函数setpalette()可对调色板上的颜色的色彩值重新设定。
用法: setpalette()函数调用方式为void setpalette(int value,int color);
说明: 参数value为色彩值,color为色彩值相应的颜色名。当需要将一颜色指定为一色彩值地,即可调用此函数来设置。
表1-7
-----------------------------------------------------------------
调色板
-----------------------------------------------------------------
-----------------------------------------------------------------
这个函数相对应的头文件为graphics.h
返回值: 无
41. setallpalette()设置整个调色板函数
功能: 函数setallpalette()对某个调色板上的所有颜色重新设定彩色值。
用法: 函数调用方式为void setallpalette(struct palettetype *p);
说明: 在低分辨率图形显示模式下,该函数无效。若函数调用成功,则把p指向的palettetype结构中的色彩值设置为当前调色板所有颜色的新色彩值。
这里必须把size设置为调色板颜色的数目,并把每个色彩值都装入color数组相应元素中,然后才可用于调用函数。
返回值: 无
例:把16色的EGA/VGA显示卡调色板改为其前16种颜色:
42. setbackcolor() 设置背景颜色函数
功能: 函数setbackcolor()把当前调色板颜色的第一个值改成指定的颜色值,以设置背景颜色。
用法: 此函数调用方式为void setbackcolor(int color);
说明: 参数color为指定的背景色,其有效值可以是颜色符号名,也可以是色彩值。表1-8列出了背景颜色供选取。
表1-8 背景颜色值
-----------------------------------------------------------------
-----------------------------------------------------------------
-----------------------------------------------------------------
返回值: 无
例: 把背景色置为淡蓝色
43. setcolor() 设置颜色函数
功能: 函数setcolor()设置当前绘图颜色(或称做前景色)。
用法: 该函数调用方式为voids setcolor(int color);
说明: 参数color为选择的当前绘图颜色。在高分辨率显示模式下,选取的color是实际色彩值,也可以用颜色符号名表示。如果已经摇篮函数setpalette()改变了调色板色彩值,那么符号名就不可能产生预期作用了。
返回值: 无
例: 设置16种不同的颜色,显示16段直线:
#include<graphics.h>
void main()
{
}
44. getbkcolor() 返回背景色函数
功能: 函数getbackcolor()返回当前背景颜色。
用法: 函数调用方式为int getbackcolor(void);
说明: 调用该函数后,获得背景色,但其值不一定是调色板上的色彩值。
返回值: 返回当前绘图色彩值。
例: 返回当前背景色彩值:
45. getcolor() 返回当前绘图颜色
用法: 此函数调用方式为int getcolor(void);
说明: 对于使用彩色低分辨率显示模式调色板,返回值是调色板颜色号,而不是实际颜色值,对于高分辨率显示模式,返回值对应于颜色值,除非调色板颜色已被函数setpalette()或setallpalette()改变了。
返回值: 返回当前绘图颜色值。
例: printf("drawing color is %d",getcolor());
46. getmaxcolor()返回最大颜色值函数
用法: 函数调用方式为int getmaxcolor(void);
说明: 该函数调用后,在低分辨率模式下返回值为3(这种模式下有效颜色值为0至3);在高分辨率显示模式下返回值可以是256或更高(此模式下有效颜色值为0至256或更高)。
返回值: 返回当前图形模式下最大颜色值。
例: 显示最大有效颜色值:
#include<graphics.h>
void main()
{
}
47. getpalette() 获取调色板函数
功能: 函数getpalette()将当前调色板的值填 入palettetype型结构中。
用法: getpalette()函数调用方式为void getpalette(struct palettetype *p);
说明: 此函数调用执行后,当前调色板的值被装入p指向的结构里;从而可从该结构中获得这个调色板的设置信息。
---------------------------------------------------
---------------------------------------------------
---------------------------------------------------
返回值: 无
例: 显示由自动检测所得显示模式支持的调色板上的颜色数目:
#include<graphics.h>
void main()
{
}
48. getpalettesize() 返回调色板大小函数
功能: 函数getalettesize()返回调色板的颜色数目。
用法: 该函数调用方式为int getpalettesize((void);
说明: 调用这个函数后,就知道调色板上有多少颜色数目可在当前显示模式下设置。
返回值: 返回当前显示模式支持的调色板的颜色数目。
例: 显示当前显示模式支持的调色板的颜色数目。
49. getdefaultpalette() 获取缺省调色板函数
功能: 函数getdefaultpalette() 返回指向缺省调色板的指针。
用法: 该函数调用方式为struct palettetype *getdefaultpalette(void);
说明: 调色板结构类型palettetype定义如下:
返回值: 返回指向缺省调色板(结构)的指针。
例: 显示图形系统初始化后所支持的调色板上的各种颜色。
#include<graphics.h>
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
void main()
{
}
三、屏幕位置函数
50. getmaxx()返回最大x坐标函数
功能: 函数getmaxx()返回当前图形模式下的最大x坐标,即最大横向坐标。
用法: 函数调用方式为int maxx(void);
说明: 此函数独立于图形视口设置,仅取决于显示卡的显示模式相应的分辨率。
返回值: 返回当前显示模式最大x坐标值。
例: 使用本函数的例子见51.getmaxy()函数的例子中。
51. getmaxy() 返回最大y坐标函数
功能: 函数getmaxy()返回当前图形模式下的最大y坐标,即最大纵向坐标。
用法: 函数调用方式为int getmaxy(void);
说明: 此函数独立于图形视口设置,仅取决于显示卡的显示模式相应的分辨率。
返回值: 返回当前显示模式的最大y坐标值。
#include<graphics.h>
void main()
{
}
52. getx() 返回x坐标函数
功能: 函数getx()返回当前图形模式下当前位置的x坐标(水平像素坐标)。
用法: 此函数调用方式为int getx(void);
说明: 这里坐标是相对于当前图形视口的,如果没有设置图形视口,那么缺省的图形视口为整个屏幕。这类似于文本模式下使用wherex()函数。
返回值:返回当前x坐标值。
例: 见53.gety()函数中的例子。
53. gety() 返回y坐标函数
功能: 函数gety()返回图菜模式下当前位置的y坐标(垂直像素坐标)。
用法: 此函数调用方式为int gety(void);
说明: 函数返回的坐标是相对于当前图形视口的,如果没有设置图形视口,那么缺省的图形视口为整个屏幕,这类似于文本模式下使用wherey()函数。
返回值: 返回当前y坐标值。
例: 显示图形模式下当前位置的x,y坐标值:
printf("x: %d, y: %d", getx(),gety());
54. moveto()函数
功能: 函数moveto()将当前位置移动到指定坐标的位置
说明: 这相当于文本模式下gotoxy()函数的操作,它提供对等的功能。
返回值: 无
例: 把当前位置移到(66,88)位置上:
55. moverel() 相对移动函数
功能: 函数moverel()根据指定的偏移量,将当前位置移动一个相对距离(即偏移量大小的距离),成为新的当前位置。
用法: 此函数调用方式为void moverel(int dx,int dy);
说明: 参数dx为x方向相对移动距离dy为y方向相对移动距离。相对移动对图形应用程序,往往要比绝对移动方便一些。
返回值: 无
例: 下面的程序,当语句执行到当前位置在(90,90),则执行后将移动到(100,120)的位置上。即x方向相对移动10,y方向相对移动30: