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)