codeblock图形界面编程(五)基于ege库的数据采集波形绘图

目录

  • codeblock图形界面编程(五)基于ege库的绘图
    • ege库在codeblock中配置
    • ege库常用函数
      • 基础函数
      • 进阶函数
    • 项目实例

codeblock图形界面编程(五)基于ege库的绘图

在嵌入式的项目开发中,数据检测、记录和分析往往是必要的功能,为了更加直观有效地展示数据,图形化的显示和分析往往事半功倍,另外,在分析故障情况是,往往需要区分问题原因,专业人员通过展示的图形,就可以区分是数据采集问题、还是数据分析算法问题,达到缩小范围,高效找到并解决问题的目的。

ege库在codeblock中配置

EGE, 全称 Easy Graphics Engine(简易图形引擎),是 windows 下的简易绘图库,是一个面向 C/C++ 语言的图形库,官网下载dz :

	https://xege.org

当前最新版本为:

	ege20.08_all(推荐, 支持vs2010-vs2019以及devcpp,codeblocks等)

推荐使用。

关于 ege图形库在codeblock中的安装和配置,网上教程好多,不在赘述。在此只强调两点:

  1. 一定要正确配置ege头文件目录,目录名字中不要有中文。
  2. ege的lib文件夹中要选择正确的codeblock版本

一定要和codeblock的版本一致,如下图:

在这里插入图片描述

ege库常用函数

基础函数

 (1)初始化,创建窗口
initgraph(Length_PicX, Length_PicY,INIT_RENDERMANUAL);	
(2)设置绘画颜色
setcolor(EGERGB(0xFF, 0x0, 0x0));
(3)设置背景颜色
setbkcolor(WHITE);
(4)画圆
circle(320, 240, 100);
(5)画直线 
ege_line(Zero_X, Zero_Y, Length_X,Length_Y);
(6)结束绘图
closegraph();

进阶函数

(1)   画矩形和填充矩形void EGEAPI ege_rectangle(float x, float y, float w, float h, PIMAGE pimg = NULL);
void EGEAPI ege_fillrect(float x, float y, float w, float h, PIMAGE pimg = NULL);(2)画多边形和填充多边形void EGEAPI ege_drawpoly(int numpoints, ege_point* polypoints, PIMAGE pimg = NULL);
void EGEAPI ege_fillpoly(int numpoints, ege_point* polypoints, PIMAGE pimg = NULL);(3)画椭圆和填充椭圆void EGEAPI ege_ellipse(float x, float y, float w, float h, PIMAGE pimg = NULL);
void EGEAPI ege_fillellipse(float x, float y, float w, float h, PIMAGE pimg = NULL);

(4) 画扇形和填充扇形

void EGEAPI ege_pie(float x, float y, float w, float h, float stangle, float sweepAngle, PIMAGE pimg = NULL);
void EGEAPI ege_fillpie(float x, float y, float w, float h, float stangle, float sweepAngle, PIMAGE pimg = NULL);

(5)获取图像文件:

PIMAGE getimage(pimg, "图片文件名(带扩展名)");
该函数有多个重载,分别从不同的地方获取图像

项目实例

在本项目实例中,我们实现一个50hz数据采集波形的输出功能,程序实现如下:

	int Drad_Pic_from_Datet(unsigned int *buff,int length,int rad){int i;		int StartX,StartY,EndX,EndY;		initgraph(800, 600);//设置绘画颜色为红色setcolor(EGERGB(0xFF, 0x0, 0x0));//设置背景颜色为白色setbkcolor(WHITE);//直线 x坐标轴ege_line(Zero_X, Zero_Y, Zero_X+Length_X, Zero_Y+0);//直线 y坐标轴ege_line(Zero_X, Zero_Y+Length_Y, Zero_X+0, Zero_Y-Length_Y);for(i=0;i

运行后,输出图形如下:

在这里插入图片描述当然,不同的采集数据决定了输出波形的形状,我们也可以对入口参数buff做工具填充,实现填充图形的显示功能。


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部