How to draw cylinder in y or x axis in opengl

后端 未结 2 1772
长情又很酷
长情又很酷 2021-01-05 03:27

I just want to draw a cylinder in opengl. I found lots of samples but all of them draws cylinders in z axis. I want them be in x or y axis. How can i do this. The code below

相关标签:
2条回答
  • 2021-01-05 03:54

    You can use glRotate(angle, x, y, z) to rotate your coordinate system:

    GLUquadricObj *quadratic;
    quadratic = gluNewQuadric();
    glRotatef(90.0f, 0.0f, 1.0f, 0.0f);
    gluCylinder(quadratic,0.1f,0.1f,3.0f,32,32);
    

    http://www.opengl.org/sdk/docs/man/xhtml/glRotate.xml

    0 讨论(0)
  • 2021-01-05 04:13

    On every render use glPushMatrix glRotatef draw the cylinder and finish your drawing with glPopMatrix.

    Ex.: glRotatef(yRotationAngle, 0.0f, 1.0f, 0.0f); // Rotate your object around the y axis on yRotationAngle radians

    Ex.: OnRender() function example

    void OnRender() {
      glClearColor(1.0f, 0.0f, 0.0f, 1.0f); // Clear the background
      glClear(GL_COLOR_BUFFER_BIT); //Clear the colour buffer
      glLoadIdentity(); // Load the Identity Matrix to reset our drawing locations
    
      glRotatef(yRotationAngle, 0.0f, 1.0f, 0.0f); // Rotate our object around the y axis on yRotationAngle radians
    
      // here *render* your cylinder (create and delete it in the other place. Not while rendering)
      gluCylinder(quadratic,0.1f,0.1f,3.0f,32,32);
    
      glFlush(); // Flush the OpenGL buffers to the window  
    }  
    
    0 讨论(0)
提交回复
热议问题