C++ cli 如何为滚动图形创建新的曲线项?
我正在尝试使用zedgraph创建一个滚动图。我使用了网站上给出的代码 . 它工作正常。示例中的图形已使用curveitem实现,如下所示:C++ cli 如何为滚动图形创建新的曲线项?,c++-cli,zedgraph,C++ Cli,Zedgraph,我正在尝试使用zedgraph创建一个滚动图。我使用了网站上给出的代码 . 它工作正常。示例中的图形已使用curveitem实现,如下所示: if ( zedGraphControl2->GraphPane->CurveList->Count <= 0 ) return; // Get the first CurveItem in the graph LineItem ^curve = dynamic_cast<LineItem ^>(zedGrap
if ( zedGraphControl2->GraphPane->CurveList->Count <= 0 )
return;
// Get the first CurveItem in the graph
LineItem ^curve = dynamic_cast<LineItem ^>(zedGraphControl2->GraphPane->CurveList[0]);
if(curve == nullptr)
return;
// Get the PointPairList
IPointListEdit ^list = dynamic_cast <IPointListEdit^>(curve->Points);
// If this is null, it means the reference at curve.Points does not
// support IPointListEdit, so we won't be able to modify it
if ( list == nullptr)
return;
// Time is measured in seconds
double time = (Environment::TickCount - tickStart);
Output_data = CreateVariable(0);// User defined function
list->Add(time, Output_data);
if(zedGraphControl2->GraphPane->CurveList->Count GraphPane->CurveList[0]);
如果(曲线==nullptr)
返回;
//获取点对列表
IPointListed^list=动态投影(曲线->点);
//如果该值为空,则表示curve.Points处的引用不存在
//支持IPointListEdit,因此我们无法修改它
if(list==nullptr)
返回;
//时间以秒为单位
double time=(环境::TickCount-tickStart);
输出_data=CreateVariable(0);//用户定义函数
列表->添加(时间、输出数据);
我试图通过附加以下代码来创建第二条曲线:
LineItem^curve1=dynamic_cast(zedGraphControl2->GraphPane->CurveList[1]);
如果(曲线1==nullptr)
返回;
//获取点对列表
IPointListed ^list1=动态投影(曲线1->点);
//如果该值为空,则表示curve.Points处的引用不存在
//支持IPointListEdit,因此我们无法修改它
if(list1==nullptr)
返回;
//时间以秒为单位
double time=(环境::TickCount-tickStart);
输出_data=CreateVariable(0);//用户定义函数
列表1->添加(时间,输出数据);}
现在的问题是如何创建第二个行项目
如果我键入:
LineItem ^curve1=动态投影(zedGraphControl2->GraphPane->CurveList[1]);
它在调试期间显示错误,表示CurveList[1]不存在 在访问zedGraphControl2->GraphPane->CurveList[1](因为它还不存在)之前,需要首先使用GraphPane对象上的AddCurve()方法添加它 这也将返回新创建的曲线,您可以将其指定给curve1
LineItem ^curve1 = dynamic_cast<LineItem ^>(zedGraphControl2->GraphPane->CurveList[1]);
if(curve1 == nullptr)
return;
// Get the PointPairList
IPointListEdit ^list1 = dynamic_cast <IPointListEdit^>(curve1->Points);
// If this is null, it means the reference at curve.Points does not
// support IPointListEdit, so we won't be able to modify it
if ( list1 == nullptr)
return;
// Time is measured in seconds
double time = (Environment::TickCount - tickStart);
Output_data = CreateVariable(0);// User defined function
list1->Add(time, Output_data); }