프로그래밍 Programming/Python 파이썬

파이썬 Python #20-1 콜백함수

잡과사전 2021. 2. 16. 15:28
반응형

1. 콜백함수(Callback Function)

 

이벤트(event)가 발생 했을때, 이벤트를 처리하는 함수입니다
기본 처리 함수가 존재하며, 지정된 이벤트들 중에 사용자가 만든 함수를 등록하여 사용이 가능합니다
터틀 그래픽스의 경우, 마우스클릭, 릴리즈, 드래그 등의 이벤트를 처리할 수 있습니다
또, onclick(), onscreenclick(),  onkeypress() 이런 콜백 함수가 존재합니다

 

응용문제

(1) 마우스로 그림 그리기

거북이를 클릭된 위치로 이동시키고  
draw() 안에 goto()를넣으면, 현재위치에서 클릭된위치까지 선이 그려지게 됩니다

 

(2) 클릭하는 곳에 사각형 그리기

클릭한 위치에 사각형을 그리는 프로그램 작성해봅시다


이전 시간에서 작성해봤던 square() 함수를 사용하세요

사용해야 하는 함수

def drawit(x,y):

t.penup(), t.goto(x,y), t.pendown()

s = turtle.Screen(), s.onscreenclick(drawit)

 

s.onscreenclick()함수는 클릭한 위치에서 ()안에 있는 동작을 수행하도록 하는 함수입니다

 

(3) 나무그리기
지금까지 학습한 내용을 바탕으로 조건에 따라 순환적으로 나무를 그리는 프랙탈(fractal) 프로그램을 작성해봅시다

함수는 내부에서 다시 자기자신을 호출할 수 있는데요
이것을 순환호출(recursion) 또는 재귀호출이라고 합니다

 

***

나무를 그리는 알고리즘
1. 직선을 그린다
2. 직선의 끝에서 특정한 각도로 2개의 가지를 그린다
3. 충분한 나뭇가지가 생성될 때까지 각 가지의끝에서 과정2를 되풀이 한다

***

 

조건

펜의 색깔은 녹색입니다
첫 가지를 바닥과 수직한 방향으로 길이 700만큼 그립니다
그리고 오른쪽으로 20도 만큼 꺾은 다음 20만큼 길이를 줄이고
다시 왼쪽으로 40도 꺾은 다음 20만큼 길이를 줄이고 오른쪽으로 20도 만큼 꺾습니다
그리고 이전 자리로 돌아옵니다

뒤로 갈 길이를 알면 t.backword()함수를 사용해서 이전자리로 돌아올 수 있습니다 

 

 

정답

응용문제

(1)

 

(2)

 

(3)

반응형