Как нарисовать цилиндр по оси 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);
при каждом использовании рендеринга 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
}