C++ MathGL 二维数据绘图

C++ MathGL环境搭建参考

https://blog.csdn.net/vaincury/article/details/105438971

MathGL官网

http://mathgl.sourceforge.net/doc_en/index.html

2D绘图没有直接的例子,只能逐条语句摸索。

分别初始化并设置数据类和绘图类

类mglData包含MathGL中用于数据处理的所有函数,它不依赖于具体的数据类型,数据数组的大小与数据一起保存,内存工作更简单和更安全。
创建2D数据,首先指定数据的大小,即行列数,mglData中数据是平面的,所以要逐个线性填充,例如下,但是行列好像是颠倒的,结果不理想就陶正一下。

mglData z(30,40);
  for(int i=0;i<30;i++)   for(int j=0;j<40;j++)
    z.a[i+30*j] = sin(M_PI*i/29.)*sin(M_PI*j/39.);

MathGL通常有两种绘图函数。这里使用简单变量,需要一个数据数组来绘图,其他数据(坐标)被认为是均匀分布在坐标轴范围内。
然后准备图幅,使用mglGraph类。注意一顶要旋转一下,才能得到立体的效果。

 	gr.SetRanges(minx , maxx ,  maxy ,miny , 30, 45);//坐标轴范围
    gr.Rotate(60, 45);//旋转
    gr.Axis();//显示坐标轴
    gr.Box();//显示图片边框
    //gr.Title("d72 v1.2 p5 tz");
    //Plot、Barh、Mark等等可选 
    gr.Surf(z1);
    gr.Cont(z1, "y");	// 黄色曲线
    //保存图片
    gr.WritePNG("test.png");  // Don't forget to save the result!
注意,这个库有bug,我一直不知道原因,我的电脑作图,如果加了标题,整个图出来时乱的。

效果

在这里插入图片描述

  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

清欢_小铭

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值