- #1
mrcleanhands
Hi,
I'm working through thinkpython and there is an exercise which requires drawing flowers and arcs. I'm having some trouble understanding the arc function.
Here's the polyline code called from the above function:
I'm unsure about this part:
I'm guessing the purpose of n is to divide up the movements into separate iterations. How come it's set to arc_length / 4 + 1
I'm guessing this is dividing up the total angle subtended by the arc into little bits which it gradually carves out...
I'm working through thinkpython and there is an exercise which requires drawing flowers and arcs. I'm having some trouble understanding the arc function.
Code:
def arc(t, r, angle):
"""Draws an arc with the given radius and angle.
t: Turtle
r: radius
angle: angle subtended by the arc, in degrees
"""
arc_length = 2 * math.pi * r * abs(angle) / 360
n = int(arc_length / 4) + 1
step_length = arc_length / n
step_angle = float(angle) / n
# making a slight left turn before starting reduces
# the error caused by the linear approximation of the arc
lt(t, step_angle/2)
polyline(t, n, step_length, step_angle)
rt(t, step_angle/2)
Here's the polyline code called from the above function:
Code:
def polyline(t, n, length, angle):
"""Draws n line segments.
t: Turtle object
n: number of line segments
length: length of each segment
angle: degrees between segments
"""
for i in range(n):
fd(t, length)
lt(t, angle)
Code:
n = int(arc_length / 4) + 1
Code:
step_angle = float(angle) / n