CWgraph控件的PlotY函数和ChartY函数

wanggang6336 2017-02-28 07:34:30
在用这个控件的时候选择PlotY函数时,采的时间点倒是可以一个点一个点的显示,但是横坐标不动,将函数换为ChartY函数时,横坐标可以更新,比如我设置最大值到150,当曲线走到150的时候会从头开始继续显示,此时横坐标显示150到300,但是同时显示好几个点,组成好几段直线,而且显示的越来越多,却大神指导如何用ChartY函数一个一个点显示
int m_CurPos=0;
int count=0;
BOOL m_bXuanhuan=FALSE;
float TempData=20;
#define CURVEPOINT 100
float data[100][CURVEPOINT];
void CGraphIOView::OnInitialUpdate()
{
CFormView::OnInitialUpdate();
GetParentFrame()->RecalcLayout();
ResizeParentToFit();
for (int i=0;i<100;i++)
{
for (int j=0;j<100;j++)
{
m_fEngData[i]=0.0;
}
}
// ReadData();
SetTimer(1,200,NULL);
void CGraphIOView::ShowCurve()
{
int i=0;//i的值就是显示参数曲线编号
CNiReal64Vector vect1(CURVEPOINT);
// for (int i=0;i<100;i++)
{
data[i][m_CurPos]=m_fEngData[i];
}

// data[0][m_CurPos]=m_fEngData[0];
if (m_bXuanhuan)
{
int k=0;
for (int i=m_CurPos;i<CURVEPOINT;i++,k++)
{
vect1[k]=data[0][i];
}
for (i=0;i<m_CurPos&&k<CURVEPOINT;i++,k++)
{
vect1[k]=data[0][i];
}
}
else
{
vect1.SetSize(m_CurPos+1);
for (int i=0;i<m_CurPos+1;i++)
{
vect1[i]=data[0][i];
}
}
m_Graph.GetPlots().Item(1).ChartY(vect1,1);
m_CurPos++;
if (m_CurPos>CURVEPOINT)
{
m_bXuanhuan=TRUE;
m_CurPos=0;
}
}

void CGraphIOView::OnTimer(UINT nIDEvent)
{
// TODO: Add your message handler code here and/or call default
// if (count<100)
{
// GenericData(count);
}
GenericData();//产生一个随机数
ShowCurve();//生成曲线
CFormView::OnTimer(nIDEvent);
}

void CGraphIOView::GenericData()
{
int i=0;
// for (i=0;i<100;i++)
{
m_fEngData[i]=rand()/1000+10;
}
}
}
...全文
412 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2017-03-02
  • 打赏
  • 举报
回复
自绘是早晚要学会的技能。

3,245

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧