Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <math.h>
- #include <stdlib.h>
- #if defined(__APPLE__)
- #include <OpenGL/gl.h>
- #include <OpenGL/glu.h>
- #include <GLUT/glut.h>
- #else
- #if defined(WIN32) || defined(_WIN32) || defined(__WIN32__)
- #include <windows.h>
- #endif
- #include <GL/gl.h>
- #include <GL/glu.h>
- #include <GL/glut.h>
- #endif
- void onInitialization() {
- }
- #define CIRCLE_RESOLUTION 32
- void onDisplay() {
- glClear(GL_COLOR_BUFFER_BIT);
- // A piros kor, a kepernyo bal oldalan
- glBegin(GL_TRIANGLE_FAN); {
- float radius = 0.25f, center_x = -0.5f, center_y = 0.4f;
- glColor3f(1.0f, 0.0f, 0.0f);
- glVertex2f(center_x, center_y);
- for(int i = 0; i <= CIRCLE_RESOLUTION; i++) {
- float angle = float(i) / CIRCLE_RESOLUTION * 2.0f * M_PI;
- // Itt a kor paramtetrikus alakjat hasznaljuk: x = x0 + r*cos(t), y = y0 + r * sin(t)
- glVertex2f(center_x + radius*cos(angle), center_y + radius*sin(angle));
- }
- } glEnd();
- // Szinatmenetes kor, a kepernyo jobb oldalan
- glBegin(GL_TRIANGLE_FAN); {
- float radius = 0.25f, center_x = 0.5f, center_y = 0.4f;
- glColor3f(0.0f, 1.0f, 1.0f);
- glVertex2f(center_x, center_y);
- for(int i = 0; i <= CIRCLE_RESOLUTION; i++) {
- float angle = float(i) / CIRCLE_RESOLUTION * 2.0f * M_PI;
- glColor3f(0.0f, 0.5f + 0.5f*cos(angle), 0.5f + 0.5f*sin(angle));
- glVertex2f(center_x + radius*cos(angle), center_y + radius*sin(angle));
- }
- } glEnd();
- // Felkoriv
- glBegin(GL_LINE_STRIP); {
- float radius = 0.75f, center_x = 0.0f, center_y = 0.0f;
- glColor3f(1.0f, 1.0f, 1.0f);
- for(int i = CIRCLE_RESOLUTION/2; i <= CIRCLE_RESOLUTION; i++) {
- float angle = float(i) / CIRCLE_RESOLUTION * 2.0f * M_PI;
- glVertex2f(center_x + radius*cos(angle), center_y + radius*sin(angle));
- }
- } glEnd();
- glutSwapBuffers();
- }
- void onMouse(int, int, int, int) {
- }
- void onMouseMotion(int, int) {
- }
- void onKeyboard(unsigned char, int, int) {
- }
- void onKeyboardUp(unsigned char, int, int) {
- }
- void onIdle() {
- }
- int main(int argc, char **argv) {
- glutInit(&argc, argv);
- glutInitWindowSize(600, 600);
- glutInitWindowPosition(100, 100);
- glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE | GLUT_DEPTH);
- glutCreateWindow("Grafika pelda program");
- glMatrixMode(GL_MODELVIEW);
- glLoadIdentity();
- glMatrixMode(GL_PROJECTION);
- glLoadIdentity();
- onInitialization();
- glutDisplayFunc(onDisplay);
- glutMouseFunc(onMouse);
- glutIdleFunc(onIdle);
- glutKeyboardFunc(onKeyboard);
- glutKeyboardUpFunc(onKeyboardUp);
- glutMotionFunc(onMouseMotion);
- glutMainLoop();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment