Ejemplo n.º 1
0
def flower(t, n, rf, re):
  angle = asin(0.5 * float(rf) / re) * 180 / pi
  rt(t, angle)

  for _ in range(n):
    arc(t, re, angle * 2)
    lt(t, 180 - angle * 2)
    arc(t, re, angle * 2)
    lt(t, 180 - angle * 2 + 360 / n)
Ejemplo n.º 2
0
def pie(t, sides, radius):
  angle1 = 360.0 / sides
  angle2 = (180.0 - angle1) / 2
  print angle1
  print angle2
  rt(t, angle1 / 2)

  for _ in range(sides):
    fd(t, radius)
    lt(t, 180 - angle2)
    fd(t, 2 * radius * sin(pi / 180 * angle1 / 2))
    lt(t, 180 - angle2)
    fd(t, radius)
    rt(t, 180)
Ejemplo n.º 3
0
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)
Ejemplo n.º 4
0
def isosceles(t, r, angle):
    """Draws an icosceles triangle.

    The turtle starts and ends at the peak, facing the middle of the base.

    t: Turtle
    r: length of the equal legs
    angle: peak angle in degrees
    """
    y = r * math.sin(angle * math.pi / 180)

    rt(t, angle)
    fd(t, r)
    lt(t, 90+angle)
    fd(t, 2*y)
    lt(t, 90+angle)
    fd(t, r)
    lt(t, 180-angle)