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)