请原谅新手问题 - 无法在网上找到任何有用的信息。
我目前有一个动作捕捉系统,可以将数据传输到我的电脑。我有一个函数(C ++),每次收到一个帧时都会触发它,它当前将这些数据写入文件。我想要的是每次有帧时也要绘制点(即刷新的图)。我遇到的问题是,由于框架触发了一个函数,我似乎无法让gnuplot为每个绘图打开一个新窗口。
我正在使用gnuplot-iostream。目前我有以下代码
void printRigidBodies(Mocha::Frame::KPtr frame) // This function is triggered every time a new frame is received
{
Gnuplot gp;
std::ofstream dat;
dat.open ("Optitrack_data.dat");
for(auto& name: frame->listRigidBodiesNames()) //For loop over all the bodies contained in the frame
{
//...
gp << "set title 'Optitrack streaming data' \n";
gp << "set xrange [-2000:2000]\nset yrange [-2000:2000]\nset zrange [0:2000]\n";
gp << "splot 'Optitrack_data.dat'u 1:2:3 with points notitle" << std::endl;
dat.close();
}
}
我试过了:
我认为问题是每次调用函数时Gnuplot会有效地重置所有命令。
任何帮助表示赞赏,正如我所说,我对此很新,所以我很可能以错误的方式使用它!