본문 바로가기
Language/C++ & openGL

OpenGL 그래픽스 , 그리기

by javapp 자바앱 2020. 4. 25.
728x90
#include <GL/glut.h>

#include <GL/gl.h>

#include <GL/glu.h>

#include <stdio.h>

#include <windows.h>

 

void MyDisplay()

{

        glClear(GL_COLOR_BUFFER_BIT);

       

        glPointSize(4.0);    //먼저 점 사이즈 정해주기

        glBegin(GL_POINTS);

       

        glColor3f(255, 0, 0);  //먼저 색깔 정해주기

        glVertex3f(0.0, 0.0, 0.0);

        glColor3f(0, 0, 255);

        glVertex3f(0.0, 0.5, 0.0);

        glColor3f(0, 255, 0);

        glVertex3f(0.5, 0.0, 0.0);

       

 

        glEnd();

 

        glFlush();

}

 

int main(int argc, char* argv[])

{

        glutInit_ATEXIT_HACK(&argc, argv);//운영체제 세션에 연결

        glutInitWindowSize(300, 300); // 윈도우 크기

        glutInitWindowPosition(100, 100); // (100,100) 위치에 윈도우

        glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE);

 

        glutCreateWindow_ATEXIT_HACK("OpenGL Example2"); //새로운 윈도우 생성

        glutSetWindowTitle("OpenGL Example2"); //윈도우 타이틀 설정

 

 

        glutDisplayFunc(MyDisplay); //그리는 함수 탑재

        glutMainLoop();  //계속 실행되면서 사용자나 시스템에 의해 발생한 메시지를 받아 메시지 처리 함수를 호출

        return 0;

}

 

 

 

 



 

 

#include <GL/glut.h>

#include <GL/gl.h>

#include <GL/glu.h>

#include <stdio.h>

#include <windows.h>

 

void MyDisplay()

{

        glClear(GL_COLOR_BUFFER_BIT);

       

        glLineWidth(2.0);

        glBegin(GL_LINES);

       

        glColor3f(255, 0, 0);

        glVertex3f(0.0, 0.0, 0.0);

        glVertex3f(0.5, 0.0, 0.0);

        glColor3f(0, 255, 0);

        glVertex3f(0.0, 0.5, 0.0);

        glVertex3f(0.5, 0.5, 0.0);

 

       

 

        glEnd();

 

        glFlush();

}

 

int main(int argc, char* argv[])

{

        glutInit_ATEXIT_HACK(&argc, argv);

        glutInitWindowSize(300, 300); // 윈도우 크기

        glutInitWindowPosition(100, 100); // (100,100) 위치에 윈도우

        glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE);

 

        glutCreateWindow_ATEXIT_HACK("OpenGL Example3");

        glutSetWindowTitle("OpenGL Example3"); //윈도우 타이틀 설정

 

 

        glutDisplayFunc(MyDisplay);

        glutMainLoop();

        return 0;

}

 


#include <GL/glut.h>

#include <GL/gl.h>

#include <GL/glu.h>

#include <stdio.h>

#include <windows.h>

 

void MyDisplay()

{

        glClear(GL_COLOR_BUFFER_BIT);

       

        glBegin(GL_POLYGON);

       

        glColor3f(255, 0, 0);

        glVertex3f(0.5, 0.5, 0.0);

        glColor3f(0, 255, 0);

        glVertex3f(-0.5, 0.5, 0.0);       //x축만 마이너스

        glColor3f(0, 0, 255);

        glVertex3f(-0.5, -0.5, 0.0);//y축만 마이너스

        glColor3f(255, 255, 0);

        glVertex3f(0.5, -0.5, 0.0);//x축만 플러스

 

 

        glEnd();

 

        glFlush();

}

 

int main(int argc, char* argv[])

{

        glutInit_ATEXIT_HACK(&argc, argv);

        glutInitWindowSize(300, 300); // 윈도우 크기

        glutInitWindowPosition(100, 100); // (100,100) 위치에 윈도우

        glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE);

 

        glutCreateWindow_ATEXIT_HACK("OpenGL Example3");

        glutSetWindowTitle("OpenGL Example3"); //윈도우 타이틀 설정

 

 

        glutDisplayFunc(MyDisplay);

        glutMainLoop();

        return 0;

}

그라데이션 폴리곤 정사각형


원그리기

 

OpenGL 원 그리기

앞 포스팅에서, 기본적인 점, 선 그리고 다각형을 그려보았다. 그럼 원은 어떻게 그릴 수 있을까? OpenGL에서 바로 원을 그리는 방법은 내가 알기론 없다. 따라서, OpenGL에서는 원을 다각형으로 그리는데, 변이..

blog.amaorche.com

 

댓글