我是靠谱客的博主 贪玩指甲油,这篇文章主要介绍【一些笔记】【图形库】C++ - EGE - Graphics.h库的函数手册【部分使用说明】Easy Graphics Engine,现在分享给大家,希望可以做个参考。
Easy Graphics Engine
[by_041]
文章目录
- Easy Graphics Engine
- [by_041]
- @[toc]
- 安装
- 入门基础示例和教程
- 库函数目录
- 绘图环境相关函数
- 颜色表示及相关函数
- 绘制图形相关函数
- 文字输出相关函数
- 图像处理相关函数
- 键盘鼠标输入函数
- 时间函数
- 数学函数
- 随机函数
- 其它函数
- 补充内容
文章目录
- Easy Graphics Engine
- [by_041]
- @[toc]
- 安装
- 入门基础示例和教程
- 库函数目录
- 绘图环境相关函数
- 颜色表示及相关函数
- 绘制图形相关函数
- 文字输出相关函数
- 图像处理相关函数
- 键盘鼠标输入函数
- 时间函数
- 数学函数
- 随机函数
- 其它函数
- 补充内容
安装
-
下载文件(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 | 设置绘图位操作模式 |
特殊说明:
- 以下所有函数的坐标模式为,如果以有向线段表示的量,起点能取到,终点取不到。比如line函数,起点x1,y1能画上点,终点x2,y2不会画上点,请注意。类似的有lineto, linerel, bar, bar3d, rectangle, ellipse, sector,函数说明内也会对本段进行补充。
- 另外,这里每一个函数的最后一个参数均为一个PIMAGE的指针,是一个可选参数,如果不填,则绘画到当前页。如果填上,则绘画到指定的IMAGE。
- 关于效率,如果使用手动更新模式(setrendermode),那以上所有函数的执行速度都会得到提升。
其它说明:对于多数函数,另有高速版的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 | 使用对话框让用户输入一个字符串 |
补充内容
-
- 用 16 进制的颜色表示,形式为:
0xrrggbb (rr=红,gg=绿,bb=蓝) - 用预定义颜色,如下:
常量值 值 颜色值 常量值 值 颜色 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));
- 用 16 进制的颜色表示,形式为:
补充如下 ↩︎
最后
以上就是贪玩指甲油最近收集整理的关于【一些笔记】【图形库】C++ - EGE - Graphics.h库的函数手册【部分使用说明】Easy Graphics Engine的全部内容,更多相关【一些笔记】【图形库】C++内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复