[파이썬] Kivy `Canvas` 위젯과 그래픽 명령

Kivy는 파이썬으로 작성된 오픈 소스 Python 프레임워크로, 멀티 플랫폼 애플리케이션 개발을 위한 강력한 도구입니다. Kivy는 다양한 사용자 인터페이스 요소를 제공하며, 그래픽 렌더링을 위해 Canvas 위젯을 제공합니다.

Canvas 위젯을 사용하면 사용자 정의 그래픽 요소를 그릴 수 있습니다. 이 위젯은 다양한 그래픽 명령을 지원하여 도형, 선, 텍스트 등을 그릴 수 있도록 해줍니다. 이제 Canvas 위젯과 그래픽 명령을 사용하는 방법에 대해 알아보겠습니다.

Canvas 생성

먼저, Canvas 위젯을 생성해야 합니다. Kivy에서는 Canvas 객체를 추가하여 Widget에 그래픽 기능을 추가할 수 있습니다. 아래의 예제에서는 Canvas 객체를 사용하여 MyWidget 클래스에 그래픽 요소를 추가합니다.

from kivy.app import App
from kivy.uix.widget import Widget
from kivy.graphics import Rectangle, Color

class MyWidget(Widget):
    def __init__(self, **kwargs):
        super(MyWidget, self).__init__(**kwargs)
        with self.canvas:
            Color(1, 0, 0, 1)  # 빨간색
            Rectangle(pos=(100, 100), size=(200, 200))  # 사각형 그리기

class MyApp(App):
    def build(self):
        return MyWidget()

if __name__ == '__main__':
    MyApp().run()

위 예제에서는 MyWidget 클래스를 정의하고, 생성자에서 Canvas 객체를 사용하여 빨간색 사각형을 그립니다. Canvas 객체는 with 문으로 사용되며, Color 클래스를 사용하여 색상을 설정하고, Rectangle 클래스를 사용하여 사각형을 그립니다.

그래픽 명령

Kivy의 Canvas 위젯은 다양한 그래픽 명령을 제공합니다. 명령은 순서대로 실행되며, 여러 개의 명령을 조합하여 원하는 그래픽 요소를 그릴 수 있습니다. 아래는 일부 그래픽 명령의 예시입니다.

다음 예제에서는 두 개의 원을 그리는 방법을 보여줍니다.

from kivy.app import App
from kivy.uix.widget import Widget
from kivy.graphics import Ellipse, Color

class MyWidget(Widget):
    def __init__(self, **kwargs):
        super(MyWidget, self).__init__(**kwargs)
        with self.canvas:
            Color(1, 0, 0, 1)  # 빨간색
            Ellipse(pos=(100, 100), size=(200, 200))  # 첫 번째 원
            Color(0, 1, 0, 1)  # 초록색
            Ellipse(pos=(400, 100), size=(200, 200))  # 두 번째 원

class MyApp(App):
    def build(self):
        return MyWidget()

if __name__ == '__main__':
    MyApp().run()

위 예제에서는 Ellipse 클래스를 사용하여 두 개의 원을 그리고 있습니다. 먼저 빨간색 원을 그린 후, 초록색 원을 그렸습니다.

Kivy의 Canvas 위젯과 그래픽 명령을 사용하여 사용자 정의 그래픽을 그릴 수 있습니다. 이를 통해 Kivy 애플리케이션에 흥미로운 그래픽 요소를 추가할 수 있습니다.