더북(TheBook)

4.7 리팩터링

circle 함수를 작성했을 때 다각형으로 원을 적절히 근사할 수 있어서 polygon 함수를 재사용할 수 있었다. 하지만 arc 함수는 그렇지 않았다. 그래서 호를 그릴 때는 polygon이나 circle을 사용할 수 없었다.

한 가지 방법은 polygon 함수를 복사해서 arc 함수로 고치는 것이다. 이렇게 작업한 결과가 이런 코드일 것이다.

def arc(t, r, angle):

arc_length = 2 * math.pi * r * angle / 360

n = int(arc_length / 3) + 1

step_length = arc_length / n

step_angle = angle / n

for i in range(n):

t.fd(step_length)

t.lt(step_angle)

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