더북(TheBook)

제어 함수인 stddraw.show()는 설명이 약간 더 필요하다. 프로그램이 stddraw.line()이나 stddraw.point() 등 그림 함수를 호출하면 stddraw는 배경 캔버스(background canvas)라고 하는 추상적인 화면에 그린다. 배경 캔버스는 화면에 보이지 않고 단지 컴퓨터 메모리에만 존재한다. 점, 선 등은 배경 캔버스에 그려지며 표준 그래픽스 창에 바로 나타나지 않는다. stddraw.show()를 호출해야 배경 캔버스에 그린 그림이 표준 그래픽스 창으로 복사되어 화면에 나타나며, 사용자가 그래픽 창 제목 줄의 닫기 버튼을 눌러 표준 그래픽스 창을 닫아야 종료된다.

stddraw가 배경 캔버스를 사용하는 이유는 무엇일까? 캔버스를 하나가 아니라 두 개를 사용하는 이유는 stddraw를 효율적으로 만들기 위해서이다. 복잡한 그림의 요소를 하나씩 그리는 작업은 대부분의 컴퓨터에서 참을 수 없을 정도로 비효율적인 작업이기 때문이다. 컴퓨터 그래픽스에서는 이런 방법을 이중 버퍼링(double buffering)이라고 한다.

stddraw 모듈을 사용하는 프로그램은 일반적으로 다음과 같은 구조로 되어 있다.

stddraw 모듈을 임포트한다.

stddraw.line()stddraw.point() 등의 그림 그리기 함수를 이용해 배경 캔버스에 그림을 그린다.

stddraw.show()를 호출해 배경 캔버스를 표준 그래픽스 창에 보여주고 사용자가 창을 닫을 때까지 기다린다.

모든 그림은 배경 캔버스로 간다는 점을 반드시 기억하라. 일반적으로 그림을 그리는 프로그램은 마지막에 stddraw.show()를 호출한다. stddraw.show()를 호출해야 화면에서 그림을 볼 수 있기 때문이다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.