您的位置:首页 > 其它

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

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

具体控件使用方法:

首先注册控件: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编了一个实验程序,效果如下:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐