
总览
| 函数声明 | 函数功能 |
|---|---|
char *gcvt(double value, int ndigit, char *buf); |
把浮点数转换成字符串,同时返回一个指向字符串的存储位置的指针的函数。 |
void getarccoords(struct arccoordstype *arccoords); |
取最后一次调用arc的坐标 |
int getbkcolor(void); |
获取当前背景颜色 |
int getc(FILE *stream); |
从流中取字符 |
int getchar(void); |
从 stdin 流中读字符 |
int getcolor(void); |
当前画线的颜色 |
char *getcwd(char *buffer, int maxlen); |
获取当前工作目录 |
struct palettetype* getdefaultpalette(void); |
获取调色板定义结构 |
char *getdrivename(void); |
获取当前图形驱动程序名字 |
void getfillpattern(char *upattern); |
将用户定义的填充模式拷贝到内存中 |
void getfillsettings(struct fillsettingstype *fillinfo); |
获取有关当前填充模式和填充颜色的信息 |
int getgraphmode(void); |
获取当前图形模式 |
void getimage(int left, int top, int right, int bottom, void *bitmap); |
保存指定区域的屏幕上的像素图形到指定的内存区域 |
void getlinesettings(struct linesettingstype *lininfo); |
取当前线型、模式和宽度 |
int getmaxcolor(void); |
可以传给函数 setcolor 的最大颜色值 |
int getmaxx(void); |
屏幕的最大x坐标 |
int getmaxy(void); |
屏幕的最大y坐标 |
1. gcvt
1.1 函数说明
| 函数声明 | 函数功能 |
|---|---|
char *gcvt(double value, int ndigit, char *buf); |
把浮点数转换成字符串,同时返回一个指向字符串的存储位置的指针的函数。 |
参数:
value:被转换的值。ndigit:存储的有效数字位数。buf:结果的存储位置。
注意:
gcvt函数把一个浮点值转换成一个字符串 (包括一个小数点和可能的符号字节) 并存储该字符串在buffer中。该buffer应足够大以便容纳转换的值加上结尾的 结束符'\0',它是自动添加的。
如果一个缓冲区的大小为ndigit + 1,则gcvt函数将覆盖该缓冲区的末尾。这是因为转换的字符串包括一个小数点以及可能包含符号和指数信息。
1.2 演示示例
1 |
|
1.3 运行结果

2. getarccoords
2.1 函数说明
| 函数声明 | 函数功能 |
|---|---|
void getarccoords(struct arccoordstype *arccoords); |
取最后一次调用arc的坐标 |
2.2 演示示例
1 |
|
上述代码是一个简单的图形程序,使用了图形库函数 arc 来绘制一个弧线并显示其起始和结束点的坐标。
大致逻辑如下:
- 初始化图形驱动和模式,创建一个空的图形窗口。
- 检查图形操作是否成功,如果失败则输出错误信息并退出程序。
- 计算屏幕的中心点坐标
(midx, midy)。 - 设置绘图颜色为最大颜色值。
- 在屏幕中心绘制一个弧线,起始角度为
45度,结束角度为270度,半径为100像素。 - 获取最后一次调用
arc函数时的坐标信息,并将其存储在arcinfo结构体中。 - 使用
sprintf函数将起始点和结束点的坐标格式化为字符串。 - 在屏幕上显示起始点和结束点的坐标信息。
- 等待用户按键输入,然后关闭图形窗口并退出程序。
2.3 运行结果

3. getbkcolor
3.1 函数说明
| 函数声明 | 函数功能 |
|---|---|
int getbkcolor(void); |
获取当前背景颜色 |
| 颜色值 | 英文枚举 | 中文描述 |
|---|---|---|
| 0 | BLACK | 黑 |
| 1 | BLUE | 蓝 |
| 2 | GREEN | 绿 |
| 3 | CYAN | 青 |
| 4 | RED | 红 |
| 5 | MAGENTA | 洋红 |
| 6 | BROWN | 棕 |
| 7 | LIGHTGRAY | 淡灰 |
| 8 | DARKGRAY | 深灰 |
| 9 | LIGHTBLUE | 淡兰 |
| 10 | LIGHTGREEN | 淡绿 |
| 11 | LIGHTCYAN | 淡青 |
| 12 | LIGHTRED | 淡红 |
| 13 | LIGHTMAGENTA | 淡洋红 |
| 14 | YELLOW | 黄 |
| 15 | WHITE | 白 |
3.2 演示示例
1 |
|
上述也是一个简单的图形程序,通过使用图形库来绘制背景颜色变化。
下面来简单总结下:
- 初始化图形驱动和模式,创建一个空的图形窗口。
- 检查图形操作是否成功,如果失败则输出错误信息并退出程序。
- 计算屏幕的中心点坐标
(midx, midy)。 - 设置绘图颜色为最大颜色值。
- 设置文本对齐方式为中心对齐。
- 清空设备上的图形内容。
- 循环遍历从白色到黑色的背景颜色,每次循环执行以下操作:
- 设置当前背景颜色为循环变量
i所代表的颜色。 - 获取当前背景颜色并将其转换为字符串形式存储在
bkcolor数组中。 - 如果当前颜色是白色,则设置文本颜色为黑色;否则设置为白色。
- 将背景颜色信息添加到
bkname字符串中。 - 在屏幕中心位置显示包含背景颜色信息的文本。
- 等待用户按键输入,然后清空设备上的图形内容。
- 等待用户按键输入,然后关闭图形窗口并退出程序。
3.3 运行结果

4. getc
4.1 函数说明
| 函数声明 | 函数功能 |
|---|---|
int getc(FILE *stream); |
从流中取字符 |
4.2 演示示例
1 |
|
4.3 运行结果

5. getchar
5.1 函数说明
| 函数声明 | 函数功能 |
|---|---|
int getchar(void); |
从 stdin 流中读字符 |
5.2 演示示例
1 |
|
5.3 运行结果

6. getcolor
6.1 函数说明
| 函数声明 | 函数功能 |
|---|---|
int getcolor(void); |
当前画线的颜色 |
| 颜色值 | 英文枚举 | 中文描述 |
|---|---|---|
| 0 | BLACK | 黑 |
| 1 | BLUE | 蓝 |
| 2 | GREEN | 绿 |
| 3 | CYAN | 青 |
| 4 | RED | 红 |
| 5 | MAGENTA | 洋红 |
| 6 | BROWN | 棕 |
| 7 | LIGHTGRAY | 淡灰 |
| 8 | DARKGRAY | 深灰 |
| 9 | LIGHTBLUE | 淡兰 |
| 10 | LIGHTGREEN | 淡绿 |
| 11 | LIGHTCYAN | 淡青 |
| 12 | LIGHTRED | 淡红 |
| 13 | LIGHTMAGENTA | 淡洋红 |
| 14 | YELLOW | 黄 |
| 15 | WHITE | 白 |
6.2 演示示例
1 |
|
上述程序,通过使用图形库,在一个循环中遍历所有颜色,每次在屏幕中心显示当前颜色的名称和值,等待用户按键后更改颜色并清除屏幕,直到所有颜色展示完毕。
6.3 运行结果

7. getcwd
7.1 函数说明
| 函数声明 | 函数功能 |
|---|---|
char *getcwd(char *buffer, int maxlen); |
获取当前工作目录 |
注意:getcwd 函数是将当前工作目录的绝对路径复制到参数 buffer 所指的内存空间中,参数 maxlen 为 buffer 的空间大小。
7.2 演示示例
1 |
|
7.3 运行结果

8. getdefaultpalette
8.1 函数说明
| 函数声明 | 函数功能 |
|---|---|
struct palettetype* getdefaultpalette(void); |
获取调色板定义结构 |
8.2 演示示例
1 |
|
8.3 运行结果

9. getdrivername
9.1 函数说明
| 函数声明 | 函数功能 |
|---|---|
char *getdrivename(void); |
获取当前图形驱动程序名字 |
9.2 演示示例
1 |
|
9.3 运行结果

10. getfillpattern
10.1 函数说明
| 函数声明 | 函数功能 |
|---|---|
void getfillpattern(char *upattern); |
将用户定义的填充模式拷贝到内存中 |
10.2 演示示例
1 |
|
10.3 运行结果

11. getfillsettings
11.1 函数说明
| 函数声明 | 函数功能 |
|---|---|
void getfillsettings(struct fillsettingstype *fillinfo); |
获取有关当前填充模式和填充颜色的信息 |
参数:
struct fillsettingstype *fillinfo: 一个指向fillsettingstype结构体的指针,该结构体用于存储当前的填充模式设置。fillsettingstype结构体通常包含以下成员:int pattern:指定填充图案的索引。 BGI库提供了一套预定义的填充图案,可以通过这个索引来选择。unsigned char color:指定填充图案的颜色。 颜色通常是通过一个颜色索引来指定的,该索引对应于一个预定义的颜色表。
11.2 演示示例
1 |
|
11.3 运行结果

12. getgraphmode
12.1 函数说明
| 函数声明 | 函数功能 |
|---|---|
int getgraphmode(void); |
获取当前图形模式 |
12.2 演示示例
1 |
|
12.3 运行结果

13. getimage
13.1 函数说明
| 函数声明 | 函数功能 |
|---|---|
void getimage(int left, int top, int right, int bottom, void *bitmap); |
保存指定区域的屏幕上的像素图形到指定的内存区域 |
参数:
int left:指定要获取的图像区域的左边界的x坐标,以像素为单位int top: 指定要获取的图像区域的上边界的y坐标,以像素为单位int right: 指定要获取的图像区域的右边界的x坐标,以像素为单位int bottom:指定要获取的图像区域的下边界的y坐标,以像素为单位void *bitmap: 指向存储获取到的图像数据的内存位置的指针,这个指针可以指向任何类型的数据。在实际使用中,这个指针通常指向一个预先分配好的缓冲区,该缓冲区的大小应足够存储指定区域的图像数据。
13.2 演示示例
1 |
|
13.3 运行结果

14. getlinesettings
14.1 函数说明
| 函数声明 | 函数功能 |
|---|---|
void getlinesettings(struct linesettingstype *lininfo); |
取当前线型、模式和宽度 |
参数:
struct linesettingstype *lininfo: 一个指向linesettingstype结构体的指针,该结构体用于存储当前的线条绘制设置。linesettingstype结构体通常包含以下成员:int linestyle: 指定线条的类型。它通常是一个整数,用于选择预定义的线条样式,如实线、虚线、点线等。unsigned char upattern: 对于某些线条样式(如虚线),该参数可能用于指定线条中点和空白的具体模式。int thickness: 指定线条的宽度。在BGI中,线条的宽度可能是以像素为单位的,但具体实现可能有所不同。unsigned char color: 指定线条的颜色。颜色通常是通过一个颜色索引来指定的,该索引对应于一个预定义的颜色表。
14.2 演示示例
1 |
|
14.3 运行结果

15. getmaxcolor
15.1 函数说明
| 函数声明 | 函数功能 |
|---|---|
int getmaxcolor(void); |
可以传给函数 setcolor 的最大颜色值 |
15.2 演示示例
1 |
|
15.3 运行结果

16. getmaxx,getmaxy
16.1 函数说明
| 函数声明 | 函数功能 |
|---|---|
int getmaxx(void); |
屏幕的最大x坐标 |
int getmaxy(void); |
屏幕的最大y坐标 |
16.2 演示示例
1 |
|
16.3 运行结果
