我想转动使用此类成员绘制的圆圈:
void Scene1::Circle(float x_, float y_, float z_, float r){
xx=r*cos(359 * PI/180.0f);
xy=r*sin(359 * PI/180.0f);
glBegin(GL_QUADS);
for(int j = 0; j < 360; j++)
{
glVertex3d(xx+x_,xy+y_,z_);
glVertex3d(x_,y_,z_);
xx= r * cos(j * PI/180.0f);
xy= r * sin(j * PI/180.0f);
glVertex3d(xx+x_,xy+y_,z_);
glVertex3d(x_,y_,z_);
}
glEnd();
}
以特定角度。如果我使用
glRotatef()
它在某种程度上不起作用。我希望Circle能够始终向凸轮展示他的表面,我想将它用作某种漫画领域。 谁能帮助我?
答案 0 :(得分:1)
您要实施的是所谓的广告牌。通过将模型视图矩阵的左上角3×3设置为标识,可以很容易地实现这一点。
如果您坚持使用OpenGL矩阵函数,请使用glGetFloatv(GL_MODELVIEW_MATRIX, m)
检索它,将左上角的3×3元素更改为标识并使用glLoadMatrix(m)
将其重新置于OpenGL中。用glPushMatrix,glPopMatrix包围它以保持效果本地化。