[OpenGL] OpenGL 원 그리기

OpenGL 원 그리기

2가지 원을 그려보자.
1. 안이 채워져 있는 원
2. 안이 비워져 있는 원


안이 채워져 있는 원 그리기


안이 검은색으로 채워져 있는 원 그리기

#include <GL/freeglut.h>
#include <math.h>

//txt 파일 불러와서 렌더링하기
void draw(void)
{
    glClearColor(1.0f, 1.0f, 1.0f, 1.0f);
    glClear(GL_COLOR_BUFFER_BIT);
    glColor3f(0.0f, 0.0f, 0.0f);

    double rad = 0.5;

    glBegin(GL_POLYGON);
    for (int i = 0; i < 360; i++)
    {
        double angle = i * 3.141592 / 180;
        double x = rad * cos(angle);
        double y = rad * sin(angle);
        glVertex2f(x, y);
    }
    glEnd();
    glFinish();

}


int main(int argc, char** argv)
{
    glutInit(&argc, argv);

    glutInitDisplayMode(GLUT_SINGLE | GLUT_RGBA | GLUT_DEPTH);
    glutInitWindowPosition(800, 200);
    glutCreateWindow("Example");

    glutDisplayFunc(draw);
    glutMainLoop();
}


실행 결과





안이 비워져 있는 원 그리기


안이 비워져 있는 원 그리기

#include <GL/freeglut.h>
#include <math.h>

//txt 파일 불러와서 렌더링하기
void draw(void)
{
    //안이 비워져있느 원 그리기
    glClearColor(1.0f, 1.0f, 1.0f, 1.0f);
    glClear(GL_COLOR_BUFFER_BIT);
    glColor3f(0.0f, 0.0f, 0.0f);

    double rad = 0.5;

    double x[360], y[360];
    glBegin(GL_LINES);

    for (int i = 0; i < 360; i++) {
        double angle;
        angle = i * 3.141592 / 180;
        x[i] = rad * cos(angle);
        y[i] = rad * sin(angle);
    }
    for (int i = 0; i < 359; i++) {
        glVertex2f(x[i], y[i]);
        glVertex2f(x[i + 1], y[i + 1]);
    }
    glEnd();
    glFinish();

}


int main(int argc, char** argv)
{
    glutInit(&argc, argv);

    glutInitDisplayMode(GLUT_SINGLE | GLUT_RGBA | GLUT_DEPTH);
    glutInitWindowPosition(800, 200);
    glutCreateWindow("Example");

    glutDisplayFunc(draw);
    glutMainLoop();
}


실행 결과




댓글

이 블로그의 인기 게시물

[Arduino] 아두이노 초음파 센서(HC-SR04) 사용하기

[Arduino] 아두이노 조이스틱 사용하기

[자연 환경] 농약의 장단점 농약이 환경과 인간에게 미치는 영향