下载文件(CSDN积分下载)
把压缩包中include
文件夹中的ege.h
、graphics.h
库和ege
文件夹丢到编译器对应的include
文件夹中
在编译时写入的命令应该如下(也就是在连接器中加入命令-lgraphics64 -luuid -lmsimg32 -lgdi32 -limm32 -lole32 -loleaut32
)
g++-Wall "$file_name" -o "${file_base_name}.exe" -lgraphics64 -luuid -lmsimg32 -lgdi32 -limm32 -lole32 -loleaut32
测试编译运行下面的代码文件
#include "graphics.h"
int main()
{
initgraph(640, 480);
circle(200, 200, 100);
getch();
cleardevice();
getch();
closegraph();
return 0;
}
函数或数据 | 参数 | 返回值 | 说明 | 笔记 | |
---|---|---|---|---|---|
cleardevice | PIMAGE pimg = NULL | - | 清除屏幕 | ||
clearviewport | PIMAGE pimg = NULL | - | 清空视图 | ||
closegraph | - | - | 关闭图形环境 | ||
gettarget | - | PIMAGE对象 | 获取当前绘图对象 | ||
getviewport | int *pleft, int *ptop, int *pright, int *pbottom, int *pclip = NULL, PIMAGE pimg = NULL | - | 获取当前视图信息 | ||
initgraph | int Width, int Height, int Flag = INIT_DEFAULT | - | 初始化绘图环境 | 推荐第三个参数为:INIT_RENDERMANUAL | INIT_NOFORCEEXIT | |
is_run | - | - | 判断窗口环境是否还存在 | 一般用在while(true) 中原本 true 的位置 | |
setactivepage | 设置当前绘图页 | ||||
setcaption | 设置窗口标题 | ||||
setinitmode | 设置初始化参数 | ||||
setrendermode | 设置窗口更新模式 | ||||
settarget | 设置当前绘图对象 | ||||
setviewport | 设置当前视图 | ||||
setvisualpage | 设置显示页,把页面内容输出到窗口的页 | ||||
window_getviewport | 获取当前窗口可见部分 | ||||
window_setviewport | 设置窗口可见部分 |
函数或数据 | 参数 | 返回值 | 说明 | ||
---|---|---|---|---|---|
颜色表示1 | - | - | 介绍颜色表示方法(详见文档中) | ||
getbkcolor | 获取当前绘图背景色 | ||||
EGEGET_B | 返回指定颜色中的蓝色值 | ||||
getcolor | 获取当前绘图前景色 | ||||
getfillcolor | 获取当前绘图填充色 | ||||
EGEGET_G | 返回指定颜色中的绿色值 | ||||
EGEGET_R | 返回指定颜色中的红色值 | ||||
hsl2rgb | 转换 HSL 颜色为 RGB 颜色 | ||||
hsv2rgb | 转换 HSV 颜色为 RGB 颜色 | ||||
EGERGB | 通过红、绿、蓝颜色分量合成颜色 | ||||
rgb2gray | 转换 RGB 颜色为 灰度颜色 | ||||
rgb2hsl | 转换 RGB 颜色为 HSL 颜色 | ||||
hsv2rgb | 转换 RGB 颜色为 HSV 颜色 | ||||
setbkcolor | 设置当前绘图背景色 | ||||
setbkcolor_f | 设置清屏时所用的背景色 | ||||
setbkmode | 设置输出文字时的背景模式 | ||||
setcolor | color_t color, PIMAGE pimg = NULL | 设置当前绘图前景色 | |||
setfillcolor | color_t color, PIMAGE pimg = NULL | 设置当前绘图填充色 | |||
setfontbkcolor | 设置当前文字背景色 |
特殊说明:这里部分函数的最后一个参数为一个PIMAGE的参数,是一个可选参数,如果不填,则绘画到当前页。如果填上,则设置或者绘画到指定的IMAGE。
函数或数据 | 参数 | 返回值 | 说明 | ||
---|---|---|---|---|---|
arc(f) | int(float) x, int(float) y, int(float) stangle, // 起始角度 int(float) endangle, // 终止角度 int(float) radius, PIMAGE pimg = NULL | 画圆弧 | |||
bar | int left, int top, int right, int bottom, PIMAGE pimg = NULL | - | 画无边框填充矩形 | ||
bar3d | int left, int top, int right, int bottom, int depth, bool topflag, // 画三维顶部否 PIMAGE pimg = NULL | - | 画有边框三维填充矩形 | ||
circle | 画圆 | ||||
drawbezier | 画bezier曲线 | ||||
drawlines | 画多条不连续线段 | ||||
drawpoly | int numliness, const int *polypoints, PIMAGE pimg = NULL | - | 画多边形 | ||
ellipse | 画椭圆弧线 | ||||
fillellipse | 画填充的椭圆 | ||||
fillpoly | int numpoints, const int *polypoints, PIMAGE pimg = NULL | - | 画填充的多边形,第i个点坐标为 ( p 2 i , p 2 i + 1 ) (p_{2i},p_{2i+1}) (p2i,p2i+1) | ||
floodfill | int x, int y, int border, // 边界颜色?也就设为0且(x,y)在有颜色的地方还行 PIMAGE pimg = NULL | - | 指定边界色填充区域 | ||
floodfillsurface | 指定区域色填充区域 | ||||
getfillcolor | 获取当前填充颜色 | ||||
getfillstyle | 获取当前填充类型(暂不支持) | ||||
getheight | 获取绘图区的高度 | ||||
getlinestyle | 获取当前线形 | ||||
getpixel | int x, int y PIMAGE pimg = NULL | color_t | 获取像素点的颜色 | ||
getwidth | PIMAGE pimg = NULL | int | 获取绘图区的宽度 | ||
getx | PIMAGE pimg = NULL | int | 获取当前 x 坐标 | ||
gety | PIMAGE pimg = NULL | int | 获取当前 y 坐标 | ||
line | 画线 | ||||
linerel | int dx, int dy, PIMAGE pimg = NULL | 画线 | |||
lineto | int x, int y, PIMAGE pimg = NULL | 画线 | |||
moverel | int dx, int dy, PIMAGE pimg = NULL | 移动当前点(相对坐标) | |||
moveto | int x, int y, PIMAGE pimg = NULL | 移动当前点(绝对坐标) | |||
pieslice | 画填充圆扇形 | ||||
putpixel | int x, int y, color_t color, PIMAGE pimg = NULL | - | 画像素点 | ||
putpixels | 画多个像素点 | ||||
rectangle | 画空心矩形 | ||||
sector | 画填充椭圆扇形 | ||||
setfillcolor | color_t color, PIMAGE pimg = NULL | - | 设置当前填充颜色 | ||
setfillstyle | 设置当前填充类型(过时函数) | ||||
setlinestyle | 设置当前线形 | ||||
setlinewidth | int thickness, PIMAGE pimg = NULL | - | 设置当前线宽 | ||
setwritemode | 设置绘图位操作模式 |
特殊说明:
其它说明:对于多数函数,另有高速版的xxx_f
函数,参数一样,作用一样,但不进行相对坐标变换和边界检查(如果越界绘图,要么画错地方,要么程序结果莫名其妙,甚至直接崩溃),并且必须在窗口锁定绘图模式下才能使用,否则将发生不可预知的结果。
函数或数据 | 参数 | 返回值 | 说明 | ||
---|---|---|---|---|---|
getfont | 获取当前字体样式 | ||||
LOGFONT 结构体 | 保存字体样式的结构体 | ||||
outtext | 在当前位置输出字符串 | ||||
outtextrect | 在指定矩形区域内输出字符串 | ||||
outtextxy | 在指定位置输出字符串 | ||||
rectprintf | 在指定矩形格式化输出字符串 | ||||
setfont | int nHeight, int nWidth, LPCSTR lpszFace, PIMAGE pimg = NULL … | - | 设置当前字体样式 内含参数列表 | ||
settextjustify | 设置当前文字对齐方式 | ||||
textheight | 获取字符串的高 | ||||
textwidth | 获取字符串的宽 | ||||
xyprintf | int x, int y, LPCSTR textstring, … | - | 在指定位置格式化输出字符串 |
函数或数据 | 参数 | 返回值 | 说明 | 实例 | |
---|---|---|---|---|---|
getimage | 从屏幕 / 文件 / 资源 / IMAGE 对象中获取图像 | ||||
PIMAGE 对象 | 保存图像的对象 | ||||
imagefilter_blurring | PIMAGE imgdest, // 操作的图片,NULL当前图片 int intensity, // 模糊度(扩散,0x80+算量大一倍) int alpha, // 图像亮度(消减,0x100) // 描述要进行此操作的矩形区域,默认全图 int nXOriginDest = 0, int nYOriginDest = 0, int nWidthDest = 0, int nHeightDest = 0 | int (成功0) | 对指定图像进行图像模糊滤镜操作 | ||
putimage | 在屏幕上绘制指定图像 | ||||
putimage_alphablend | 在屏幕上以半透明方式绘制指定图像 | ||||
putimage_transparent | 在屏幕上以透明方式绘制指定图像 | ||||
putimage_alphatransparent | 在屏幕上以透明/半透明方式绘制指定图像 | ||||
三元光栅操作码 | 介绍三元光栅操作码 |
函数或数据 | 参数 | 返回值 | 说明 | ||
---|---|---|---|---|---|
FlushMouseMsgBuffer | - | - | 清空鼠标消息缓冲区(过时函数) | ||
getch | - | int | 获取一个键盘字符输入。如果当前没有输入的字符就一直等待 | ||
getkey | - | key_msg | 获取一个键盘消息。如果当前没有键盘消息就一直等待 | ||
getmouse | - | mouse_msg | 获取一个鼠标消息。如果当前鼠标消息队列中没有,就一直等待 | ||
GetMouseMsg | - | MOUSEMSG | (过时函数)获取一个鼠标消息。如果当前鼠标消息队列中没有,就一直等待 | ||
kbhit | - | int(0/1) | 检测当前是否有键盘字符输入,一般与getch搭配使用 | ||
kbmsg | - | int(0/1) | 检测当前是否有键盘消息,一般与getkey搭配使用 | ||
key_msg 结构体 | UINT msg; UINT key; UINT flags; | - | 保存键盘消息的结构体 下面要加个结构表 | ||
keystate | int key | int(0/1) | 判断某按键是否按下 | ||
mousemsg | - | int(0/1) | 检测当前是否有鼠标消息 | ||
mouse_msg 结构体 | 保存鼠标消息的结构体 | ||||
MOUSEMSG 结构体 | (不建议使用)保存鼠标消息的结构体 | ||||
mousepos | int *x, int *y | int(0) | 获取当前鼠标位置 | ||
showmouse | int bShow | int(0/非0) | 设置鼠标显示状态 |
函数或数据 | 参数 | 返回值 | 说明 | 笔记 | |
---|---|---|---|---|---|
api_sleep | long dwMilliseconds | - | 实际调用API中的Sleep,因直接调用Sleep会被转化为调用delay | ||
delay | long Milliseconds | - | 至少延迟以毫秒为单位的时间 | ||
delay_ms | long Milliseconds | - | 平均延迟以毫秒为单位的时间 | ||
delay_fps | long(double) fps | - | 延迟以FPS为准的时间,以实现稳定帧率 | 延迟平均1000/fps毫秒 常写在for的步进位 | |
delay_jfps | long(double) fps | - | 延迟以FPS为准的时间,以实现稳定帧率(带跳帧) | 和上一个区别在即使跳帧仍会更新 | |
fclock | 获取当前程序从初始化起经过的时间,以秒为单位 |
函数或数据 | 参数 | 返回值 | 说明 | ||
---|---|---|---|---|---|
getfps | int flag = 1(0渲染/1逻辑/1-0=无效) | float | 帧数,获取当前窗口刷新率(FPS = Frame Per Second) ❗需要调用delay族函数 | ||
GetHWnd | 获取当前窗口句柄 | ||||
inputbox_getline | 使用对话框让用户输入一个字符串 |
常量值 | 值 | 颜色值 | 常量值 | 值 | 颜色 |
---|---|---|---|---|---|
BLACK | 0 | 黑 | DARKGRAY | 0x545454 | 深灰 |
BLUE | 0x0000A8 | 蓝 | LIGHTBLUE | 0x5454FC | 亮蓝 |
GREEN | 0x00A800 | 绿 | LIGHTGREEN | 0x54FC54 | 亮绿 |
CYAN | 0x00A8A8 | 青 | LIGHTCYAN | 0x54FCFC | 亮青 |
RED | 0xA80000 | 红 | LIGHTRED | 0xFC5454 | 亮红 |
MAGENTA | 0xA800A8 | 紫 | LIGHTMAGENTA | 0xFC54FC | 亮紫 |
BROWN | 0xA8A800 | 棕 | YELLOW | 0xFCFC54 | 黄 |
LIGHTGRAY | 0xA8A8A8 | 浅灰 | WHITE | 0xFCFCFC | 白 |
用 EGERGB 宏合成颜色。详见 EGERGB。
用 hsl2rgb、hsv2rgb 转换其他色彩模型到 RGB 颜色。详见 hsl2rgb、hsv2rgb。
示例:
以下是部分设置前景色的方法:
setcolor(0xff0000);
setcolor(BLUE);
setcolor(EGERGB(0, 0, 255));
setcolor(hsl2rgb(240, 1, 0.5));
补充如下 ↩︎