用特定角度(OpenGL)转动圆圈

Turn Circle by a specific angle (openGL)

本文关键字:OpenGL      更新时间:2023-10-16

我喜欢用此类成员绘制圈子:

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() 

它不起作用。我希望圆圈总是向凸轮显示他的表面,我想将其用作某种漫画。谁能帮我?

您要实现的是所谓的账单板。通过将模型视图矩阵的左上3×3设置为身份,这是最容易实现的。

如果您坚持使用OpenGL矩阵函数,请使用glGetFloatv(GL_MODELVIEW_MATRIX, m)检索它,将左上方3×3元素更改为身份,并使用glLoadMatrix(m)将其放回OpenGL中。用glpushmatrix,glpopmatrix包围它,以保持效果本地。