假设代码是:
glLoadIdentity();
glTranslatef(-1.5f,0.0f,-6.0f);
glBegin(GL_TRIANGLES);
glVertex3f( 0.0f, 1.0f, 0.0f);
glVertex3f(-1.0f,-1.0f, 0.0f);
glVertex3f( 1.0f,-1.0f, 0.0f);
glEnd();
glLoadIdentity();
//Drawing another object...
如何更改代码以删除对象?我知道注释掉glTranslatef()会删除三角形,但这是正式的方法吗?
答案 0 :(得分:2)
如果你把glClear放在绘制函数的开头(绘图函数通常是一个循环),你可以简单地选择不重绘三角形,这样的绘图将不会引用你的三角形。
另外,glTranslatef()不会删除你的三角形,glTranslatef()只是一个移动当前矩阵的函数(在你的情况下,你的三角形的矩阵被移动到摄像机视图中)
glClear()
http://www.khronos.org/opengles/documentation/opengles1_0/html/glClear.html
答案 1 :(得分:1)
如果你问如何让三角形在后续帧中消失,则没有必要。每一帧时间你都有责任重新绘制所有内容。 OpenGL不会记住你的三角形。
答案 2 :(得分:1)
在if
... glBegin
... glVertex
周围放glEnd
将是最直接的方法。