现在的位置: 首页 > 综合 > 正文

一个很好用的图形显示控件(可以用于实时采集的图像显示)

2018年03月16日 ⁄ 综合 ⁄ 共 1121字 ⁄ 字号 评论关闭

昨天上网意外发现一个很好的图像显示控件,以前做上位机,对实时图像数据的显示没有很好的解决方案,真是踏破铁鞋无觅处,得来全不费功夫!很是兴奋!

具体控件使用方法:

首先注册控件:regsvr32 NTGraph.ocx
regsvr32 /u NTGraph.ocx//反注册控件

然后建立VC工程,插入上述控件!这样你会看到你的工程中多了三个类;

然后在对话框初始化函数中初始化控件,方法如下:

m_Graph.SetElementLineColor(RGB(125,255,0));
  
    m_Graph.SetElementLineColor(RGB(255,255,0));

    m_Graph.SetElementIdentify(FALSE);

     m_Graph.SetShowGrid(TRUE);
     m_Graph.SetXGridNumber(10);//设置X轴等分点数,即网格宽度(注意和函数SetRange()的关系)
     m_Graph.SetYGridNumber(10);//设置Y轴等分点数

    m_Graph.SetCaption("Test Graph Control");//设置标题
    m_Graph.SetXLabel("X轴");//设置横轴名称
    m_Graph.SetYLabel("Y轴");//设置纵轴名称
  
    m_Graph.SetRange (0,500,-50,50);//设置横轴和纵轴的范围,前两位是横轴,后两位是纵轴

 m_Graph.AddElement(); //再加一个曲线

 this->SetTimer(1,10,NULL) ;//利用定时器产生实时数据

然后在定时器中显示图像,程序如下:

 this->m_Graph.ClearGraph() ;
 m_Graph.SetElementLineColor(RGB(0,255,0));
 this->m_Graph.AddElement() ;
 m_Graph.SetElementLineColor(RGB(225,255,0));
 this->AddData(this->data,20*cos(temp)) ;
 this->AddData(this->data1,30*rand()*sin(temp)/65535) ;
 temp=temp+0.1 ;
 for(int i=0;i<500;i++)
 {
  this->m_Graph.PlotXY(i,this->data[i],0) ;
  this->m_Graph.PlotXY(i,this->data1[i],1) ;
 }

这样就OK了,很简单吧!

于是就用VC编了一个实验程序,效果如下:

 

实时数据显示效果图

抱歉!评论已关闭.