#include // forgatás x tengely körül double rX=15; // forgatás y tengely körül double rY=-30; void axes() { glBegin(GL_LINES); // x tengely glColor3f(1, 0, 0); glVertex3f(-1, 0, 0); glVertex3f(1, 0, 0); // y tengely glColor3f(0, 1, 0); glVertex3f(0, -1, 0); glVertex3f(0, 1, 0); // z tengely glColor3f(0, 0, 1); glVertex3f(0, 0, -1); glVertex3f(0, 0, 1); glEnd(); } void triangle(void) { glColor3f(0.8, 0.8, 0); glBegin(GL_POLYGON); glVertex3f(0.2, 0.5, 0.0); glVertex3f(0.5, 0.5, 0.0); glVertex3f(0.5, 0.2, 0.0); glEnd(); } void display(void) { glClear(GL_COLOR_BUFFER_BIT); axes(); triangle(); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); glRotatef( rX, 1.0, 0.0, 0.0 ); glRotatef( rY, 0.0, 1.0, 0.0 ); glutSwapBuffers(); } void keyboard(int key, int x, int y) { if (key == GLUT_KEY_RIGHT) { rY += 5; } else if (key == GLUT_KEY_LEFT) { rY -= 5; } else if (key == GLUT_KEY_DOWN) { rX -= 5; } else if (key == GLUT_KEY_UP) { rX += 5; } // a képernyő újrarajzolása glutPostRedisplay(); } int main(int argc, char** argv) { glutInit(&argc, argv); glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGBA); glutInitWindowSize(640, 450); glutInitWindowPosition(200, 200); glutCreateWindow("Hello Vilag!"); glutDisplayFunc(display); glutSpecialFunc(keyboard); glutMainLoop(); return 0; }