Как нарисовать цилиндр по оси y или x в opengl

Я просто хочу нарисовать цилиндр в opengl. Я нашел много образцов, но все они рисуют цилиндры по оси Z. Я хочу, чтобы они были по оси x или Y. Как я могу это сделать? Код ниже-это код, который рисует цилиндр в направлении z, и я не хочу его

  GLUquadricObj *quadratic;
  quadratic = gluNewQuadric();
  gluCylinder(quadratic,0.1f,0.1f,3.0f,32,32);

2 ответов


можно использовать glRotate(angle, x, y, z), чтобы повернуть систему координат:

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


при каждом использовании рендеринга glPushMatrix glRotatef нарисуйте цилиндр и закончите свой рисунок с помощью glPopMatrix.

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

Ex.: OnRender() пример

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  
}