1、简介:
MathGL是一个可用于C/C++数据可视化的函数库,可以对不同种类的数据进行可视化。由于MathGL本身不具有显示功能,需要配合opencv以及其他可视化工具才能够显示图形。
由于目前绝大多数的使用MathGL的教程或方法,都是对MathGL的库文件下载后进行编译,由于MathGL除需要本身外还依赖其他5个函数库,整个过程中还需要克服各个库直接的版本问题,所以对于大多数人来说,进行这些库的编译会很困难。
在此介绍一种十分简便,配置十分快捷的方式。
MathGL网址:http://mathgl.sourceforge.net/doc_en/index.html
2、MathGL可视化结果:
3、MathGL库的安装:
在此使用 vcpkg 进行MathGL的安装配置。对于vcpkg的操作请查看另一篇博文《Vcpkg C/C++库管理工具安装和使用教程(链接VS2019)》,按照博文中的方法首先安装vcpkg,然后使用一下命令进行MathGL的安装配置过程:
.\vcpkg install mathgl:x64-windows 或者
.\vcpkg install mathgl:x86-windows (二选一即可)
可视化工具我是用的是 opencv 安装方法类似
.\vcpkg install opencv:x86-windows
注: opencv安装x64版本的可能会出错,建议使用x86的,对于vcpkg也对应安装x86即可,都安装也不影响。
4、MathGL使用:
在项目中使用mathglde 时候必须要添加预编译语句,否则项目编译时会出现一直运行而无输出结果的情况,只需要在所有头文件前面添加预编译命令即可。预编译命令如下:
#define _CRT_STDIO_ISO_WIDE_SPECIFIERS
#define MGL_STATIC_DEFINE
5、MathGL实例:
使用MathGL】绘制三角函数:sin(pi*x)。
#define _CRT_STDIO_ISO_WIDE_SPECIFIERS
#define MGL_STATIC_DEFINE
#include <iostream>
#include <algorithm>
#include <vector>
#include "mgl2/mgl.h"
#include "opencv2/opencv.hpp"
#undef _CRT_STDIO_ISO_WIDE_SPECIFIERS
#undef MGL_STATIC_DEFINE
int main() {
using namespace cv;
mglGraph gr;
gr.FPlot("sin(pi*x)");
gr.WriteFrame("test.png");
gr.Axis();
//用OpenCV显示图片
Mat pic(gr.GetHeight(), gr.GetWidth(), CV_8UC3);
pic.data = const_cast<uchar*>(gr.GetRGB());
imshow("test", pic);
waitKey();
return 0;
}
结果图形: