Python源码示例:turtle.left()

示例1
def draw_tree(length, width=9):
    color = 'brown'
    if length < 1:
        return
    elif length < 3:
        color = 'green'

    if width < 1:
        width = 1

    turtle.color(color)
    turtle.width(width)
    turtle.forward(length)
    turtle.left(30)
    draw_tree(length / FACTOR, width - 1)
    turtle.right(60)
    draw_tree(length / FACTOR, width - 1)
    turtle.left(30)
    turtle.color(color)
    turtle.width(width)
    turtle.backward(length) 
示例2
def gear(count, width, height):

    angle = 90-(180/count)

    for _ in range(count):
        turtle.forward(width)
        turtle.left(angle)
        turtle.forward(height)
        turtle.right(90)
        turtle.forward(width)
        turtle.right(90)
        turtle.forward(height)
        turtle.left(angle)

# --- main ---

# clear everything 
示例3
def gear(count, width, height):

    angle = 90-(180/count)

    for _ in range(count):
        turtle.forward(width)
        turtle.left(angle)
        turtle.forward(height)
        turtle.right(90)
        turtle.forward(width)
        turtle.right(90)
        turtle.forward(height)
        turtle.left(angle)

# --- main ---

# clear everything 
示例4
def draw_pattern_rectangle(x, y, width, height, count, radius, color='red'):
    rotation = 360 / count

    turtle.goto(x, y)
    
    for _ in range(count):
        # move from center to circle
        turtle.pu()
        #turtle.color('black')
        turtle.forward(radius)
        turtle.right(90+rotation/2)
        
        draw_rectangle(width, height, color)

        # move from circle to center
        turtle.pu()
        #turtle.color('black')
        turtle.left(90+rotation/2)
        turtle.backward(radius)

        # rotate in circle
        turtle.right(rotation) 
示例5
def draw_pattern_circle(x, y, r, count, radius, color='red'):
    rotation = 360 / count

    turtle.goto(x, y)

    for _ in range(count):
        # move from center to circle
        #turtle.pu()
        turtle.color('black')
        turtle.forward(radius)
        turtle.right(90)

        draw_circle(r, color)

        # move from circle to center
        #turtle.pu()
        turtle.color('black')
        turtle.left(90)
        turtle.backward(radius)

        # rotate in circle
        turtle.right(rotation) 
示例6
def draw_koch(size, depth):
    if depth > 0:
        for angle in ANGLES:
            draw_koch(size / 3, depth - 1)
            turtle.left(angle)
    else:
        turtle.forward(size) 
示例7
def draw_snowflake(size):
    """ Draw a picture of a snowflake """
    turtle.penup()
    turtle.forward(10 * size)
    turtle.left(45)
    turtle.pendown()
    turtle.color(generate_random_colour())

    # draw branch 8 times to make a snowflake
    for _ in range(8):
        draw_branch(size)
        turtle.forward(size)
        turtle.left(45)

    turtle.penup() 
示例8
def draw_branch(size):
    """ Draw an individual branch on a snowflake """
    side_branch_size = size / 3
    for _ in range(3):
        for i in range(3):
            turtle.forward(side_branch_size)
            turtle.backward(side_branch_size)
            turtle.right(45)
        turtle.left(90)
        turtle.backward(side_branch_size)
        turtle.left(45)
    turtle.right(90) 
示例9
def hexagon():
    for _ in range(6):
        turtle.forward(50)
        turtle.left(60) 
示例10
def arc(sa, ea, x, y, r):  # start angle,end angle,circle center,radius
    turtle.penup()
    turtle.goto(x, y)
    turtle.setheading(0)
    turtle.left(sa)
    turtle.fd(r)
    turtle.pendown()
    turtle.left(90)
    turtle.circle(r, (ea - sa))
    return turtle.position() 
示例11
def square(x, y, size, name):
    """Draw square at `(x, y)` with side length `size` and fill color `name`.

    The square is oriented so the bottom left corner is at (x, y).

    """
    import turtle
    turtle.up()
    turtle.goto(x, y)
    turtle.down()
    turtle.color(name)
    turtle.begin_fill()

    for count in range(4):
        turtle.forward(size)
        turtle.left(90)

    turtle.end_fill() 
示例12
def draw_rectangle(size):
    for _ in range(4):
        turtle.forward(size)
        turtle.left(90)

# --- main ---

# clear everything 
示例13
def draw_rectangle(size):
    for _ in range(4):
        turtle.forward(size)
        turtle.left(90)

# --- main ---

# clear everything 
示例14
def draw_rectangle(size):
    for _ in range(4):
        turtle.forward(size)
        turtle.left(90)

# --- main ---

# clear everything 
示例15
def draw_rectangle(size):
    for _ in range(4):
        turtle.forward(size)
        turtle.left(90)

# --- main ---

# clear everything 
示例16
def draw_rectangle(size):
    for _ in range(4):
        turtle.forward(size)
        turtle.left(90)

# --- main ---

# clear everything 
示例17
def move():
    if running:
        t.forward(15)
        angle = random.randint(-9, 9) * 10 
        t.left(angle)
        t.ontimer(move, 25) # 25ms 
示例18
def s(n, l):

    if n == 0: # stop conditions

        # draw filled rectangle

        turtle.color('black')
        turtle.begin_fill()
        for _ in range (4):
            turtle.forward(l)
            turtle.left(90)
        turtle.end_fill()

    else: # recursion

        # around center point create 8 smalles rectangles.
        # create two rectangles on every side 
        # so you have to repeat it four times

        for _ in range(4):
            # first rectangle
            s(n-1, l/3)    
            turtle.forward(l/3)

            # second rectangle
            s(n-1, l/3)    
            turtle.forward(l/3)

            # go to next corner
            turtle.forward(l/3)
            turtle.left(90)
            
        # update screen
        turtle.update()

# --- main ---    

# stop updating screen (to make it faster) 
示例19
def draw_1(length, level):
    if level < 1:
        turtle.fd(length)
    else:
        length = length/3
        
        draw_1(length, level-1)
        turtle.left(90)
        draw_1(length, level-1)
        turtle.right(90)
        draw_1(length, level-1)
        turtle.right(90)
        draw_1(length, level-1)
        turtle.left(90)
        draw_1(length, level-1) 
示例20
def draw_2(length, level):
    if level < 1:
        turtle.fd(length)
    else:
        length = length/3
        
        draw_2(length, level-1)
        turtle.left(60)
        draw_2(length, level-1)
        turtle.right(180-60)
        draw_2(length, level-1)
        turtle.left(60)
        draw_2(length, level-1) 
示例21
def turn_left(width, step, draw):
    for _ in range(4):
        draw(width, step)
        turtle.left(90) 
示例22
def draw_2(length, level):
    if level < 1:
        turtle.fd(length)
    else:
        length = length/3
        
        draw_2(length, level-1)
        turtle.left(60)
        draw_2(length, level-1)
        turtle.right(180-60)
        draw_2(length, level-1)
        turtle.left(60)
        draw_2(length, level-1) 
示例23
def turn_left(width, step, draw):
    for _ in range(4):
        draw(width, step)
        turtle.left(90) 
示例24
def draw_1(length, level):
    if level < 1:
        turtle.fd(length)
    else:
        length = length/3
        
        draw_1(length, level-1)
        turtle.left(90)
        draw_1(length, level-1)
        turtle.right(90)
        draw_1(length, level-1)
        turtle.right(90)
        draw_1(length, level-1)
        turtle.left(90)
        draw_1(length, level-1) 
示例25
def draw_2(length, level):
    if level < 1:
        turtle.fd(length)
    else:
        length = length/3
        
        draw_2(length, level-1)
        turtle.left(60)
        draw_2(length, level-1)
        turtle.right(180-60)
        draw_2(length, level-1)
        turtle.left(60)
        draw_2(length, level-1) 
示例26
def turn_left(width, step, draw):
    for _ in range(4):
        draw(width, step)
        turtle.left(90) 
示例27
def draw_2(length, level):
    if level < 1:
        turtle.fd(length)
    else:
        length = length/3
        
        draw_2(length, level-1)
        turtle.left(60)
        draw_2(length, level-1)
        turtle.right(180-60)
        draw_2(length, level-1)
        turtle.left(60)
        draw_2(length, level-1) 
示例28
def turn_left(width, step, draw):
    for _ in range(4):
        draw(width, step)
        turtle.left(90) 
示例29
def draw_1(length, level):
    if level < 1:
        turtle.fd(length)
    else:
        length = length/3
        
        draw_1(length, level-1)
        turtle.left(90)
        draw_1(length, level-1)
        turtle.right(90)
        draw_1(length, level-1)
        turtle.right(90)
        draw_1(length, level-1)
        turtle.left(90)
        draw_1(length, level-1) 
示例30
def draw_2(length, level):
    if level < 1:
        turtle.fd(length)
    else:
        length = length/3
        
        draw_2(length, level-1)
        turtle.left(60)
        draw_2(length, level-1)
        turtle.right(180-60)
        draw_2(length, level-1)
        turtle.left(60)
        draw_2(length, level-1)