我在我的项目中使用libQGLViewer来绘制机器人的轨迹。为此,我从示例中提供的simpleViewer的代码开始。
为了做我的事情,我将这些代码行放在draw
函数中:
void Viewer::draw()
{
glPushMatrix();
for (auto pose : poses)
{
std::vector<float> m;
poseToVector(pose, m);
glPushMatrix();
multMatrix(m);
drawReferenceSystem();
glPopMatrix();
}
glPopMatrix();
}
其中poseToVector
和函数是 OpenGL 包装器multMatrix
,drawReferenceSystem
用于实现所需的功能。
现在,我的问题是,在poses
我的代码的每次迭代中,向量都被填充了一个新的姿势。因此,我现在正在做的是在第 1 次迭代中绘制姿势 1,在第 2 次迭代中绘制姿势 1 和 2,在第 3 次迭代中绘制姿势 1,2 和 3,依此类推。
出于这个原因,我想知道是否有更有效的方法来执行此操作。但是,如果我只是得到back
向量的 ,我将在每个时间瞬间只看到最后一个姿势。我猜这是因为每次draw
调用该函数时都会清除帧缓冲区。
因此,我的问题是:是否可以避免清除缓冲区或者我只是在胡说八道?