MathGL 繪圖庫在Linux上的安裝和應用


1、簡單的說,mathgl是一個高質量的繪圖庫,支持Linux和Windows操作系統。可以控制台使用,也可以集成到其他程序中,據說速度還可以。

2、開源、目前還在更新。

3、安裝,這里以Ubuntu18 為例。Debian操縱一致。

sudo apt install build-essential
sudo apt install libmgl-dev

4、驗證和使用。

   (1)C++的直接調用。過程就是新建CPP文件,輸入代碼,編譯,運行。  

#include <mgl2/mgl.h>
 
 int main() {
      mglGraph gr;
      gr.Title("MathGL Demo");
      gr.SetOrigin(0, 0);
      gr.SetRanges(0, 10, -2.5, 2.5);
      gr.FPlot("sin(1.7*2*pi*x) + sin(1.9*2*pi*x)", "r-2");
      gr.Axis();
     gr.Grid();
     gr.WriteFrame("mgl_example.png");
 }

    運行代碼並不會顯示窗口,而是在代碼目錄生成一個名為 mgl_example.png 的圖片,打開圖片。

(2)Qt中調用。這里僅展示一種方法,老王也還沒深入研究。。。

  新建Qt基本UI工程,然后修改為以下。

       

//添加圖例
int
example(mglGraph *gr) { gr->Rotate(60,40); gr->SetRanges(50,0,0,90,0,50); gr->Axis(); gr->Box(); gr->Grid(); int val; mglPoint a, b; //for(int i = 0; i < 50; i++){ for(int n = 0; n < 90;n++){ val = rand()%15; a.Set(i,n,0); b.Set(i,n,val); if(val < 10){ gr->Line(a,b,"b3",1); } if(val >= 10 && val <= 25){ gr->Line(a,b,"g3",1); } if(val >25){ gr->Line(a,b,"r3",1); } } //} i += 1; if(i > 50) i = 0; }
//設置繪圖
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) , ui(new Ui::MainWindow) { ui->setupUi(this); qgr = new QMathGL(ui->widget); //指定繼承 qgr->setDraw(example); // 設置繪圖,傳入函數作為參數 qgr->adjust(); // 自適應繪圖 qgr->setZoom(true); // qgr->setRotate(true); //設置可旋轉 qgr->update(); }

   運行后可以看到一個3D的圖表,這是老王的一個測試用例。

   

   這個3D的圖標支持鼠標動作,可以放大縮小,視角變換。視頻號 懂一點技術的老王  中可以看鼠標的響應效果。

 

 5、 基礎部分就到這里。

 

     


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM