[python] PyOpenGL을 사용하여 2D 그래픽 그리기

이번에는 PyOpenGL을 사용하여 2D 그래픽을 그리는 방법에 대해 알아보겠습니다. PyOpenGL은 OpenGL을 파이썬에서 사용할 수 있게 만든 라이브러리로, 그래픽 애플리케이션을 개발할 때 유용하게 사용됩니다.

1. PyOpenGL 설치

우선 PyOpenGL을 설치해야 사용할 수 있습니다. 아래의 명령어를 사용하여 PyOpenGL을 설치할 수 있습니다.

pip install PyOpenGL

2. OpenGL 초기화

PyOpenGL을 사용하려면 먼저 OpenGL을 초기화해야 합니다. 다음 코드를 사용하여 OpenGL을 초기화합니다.

from OpenGL.GL import *
from OpenGL.GLUT import *

def init():
    glClearColor(0.0, 0.0, 0.0, 0.0)
    glMatrixMode(GL_PROJECTION)
    gluOrtho2D(0, 500, 0, 500)

위 코드에서 glClearColor 함수는 화면을 지우고 배경색을 설정하는 역할을 합니다. glMatrixMode 함수는 현재 행렬 모드를 설정하는데, 여기서는 GL_PROJECTION 모드를 사용하여 2D 그래픽을 그리기 위한 행렬 모드로 설정합니다. gluOrtho2D 함수는 화면의 좌표를 설정하는데 사용됩니다.

3. 그래픽 그리기

그래픽을 그리기 위해 glutDisplayFunc 함수를 사용하여 그리기 함수를 등록합니다. 그리기 함수는 화면에 그릴 객체나 도형의 좌표와 색상을 설정하고, glVertex2f 함수를 사용하여 좌표를 그려나갑니다.

def draw():
    glClear(GL_COLOR_BUFFER_BIT)
    glColor3f(1.0, 1.0, 1.0)
    
    glBegin(GL_TRIANGLES)
    glVertex2f(100, 100)
    glVertex2f(200, 100)
    glVertex2f(150, 200)
    glEnd()
    
    glFlush()

glutInit(sys.argv)
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB)
glutInitWindowSize(500, 500)
glutCreateWindow(b"PyOpenGL 2D Graphics")
init()
glutDisplayFunc(draw)
glutMainLoop()

위 코드는 삼각형을 그리는 예제입니다. glBegin 함수를 사용하여 그리기를 시작하고, glVertex2f 함수를 사용하여 좌표를 지정합니다. glEnd 함수는 그리기를 종료합니다. 마지막으로 glFlush 함수를 사용하여 버퍼에 그려진 그래픽을 화면에 표시합니다.

참고 자료