더북(TheBook)

부록 D
재귀 호출을 이용한 그림 그리기

ALGORITHMS FOR EVERYONE icon_day

 

 

여기서는 재귀 호출을 이용해서 독특한 그림을 그리는 프로그램을 살펴보겠습니다. 연습 문제 6-1의 해답이기도 한 이 내용은 약간 어렵게 느껴질 수도 있습니다. 하지만 재귀 호출이 컴퓨터 그래픽에서 유용하게 사용된다는 사실을 잘 보여 주는 예제이며, 짧은 프로그램으로도 흥미로운 결과를 얻을 수 있다는 것을 알 수 있게 하는 내용이므로 부록 D에 따로 추가하였습니다.

 

icon_wait

 

거북이 그래픽

부록 D의 프로그램은 파이썬의 ‘거북이 그래픽’ 기능을 이용해서 그림을 그리는 프로그램입니다. 거북이 그래픽은 화면 위에 펜 역할을 하는 거북이를 올린 후, 그 거북이가 움직이도록 명령을 내려 그림을 그리도록 하는 독특한 방식의 그래픽 시스템입니다. 거북이 그래픽과 관련된 자세한 기능은 파이썬 공식 문서나 인터넷에 공개된 여러 자료를 참고하기 바랍니다.

 

• 파이썬 공식 문서: https://docs.python.org/3/library/turtle.html 영어

 

재귀 호출을 이용하여 알고리즘 문제를 풀 때, 재귀 함수는 조금 더 작은 입력 값으로 자신을 다시 호출하는 것을 반복하다가 입력이 일정 크기 이하로 작아지면(종료 조건이 되면) 반복 호출을 멈춘다고 배웠습니다.

재귀 호출을 이용해 그림을 그릴 때도 이와 같은 구조를 사용합니다. 어떤 그림 안에 자기 자신과 똑같이 닮았지만, 크기가 조금 더 작은 그림을 반복하여 그립니다(자기 복제 과정).

이 과정을 반복하다가 그려야 할 그림의 크기가 어느 정도로 작아지면 재귀 호출을 멈춥니다(종료 조건).

지금부터 자기 복제 과정과 종료 조건을 염두에 두고 다음 프로그램들을 살펴봅시다. 복잡한 재귀 호출 과정이 완전히 이해되지 않더라도, 재귀 호출이 그리는 신기한 그림을 감상하면서 즐겨 보세요.

 

 

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