Python源码示例:turtle.fd()
示例1
def run_instruction(t):
if t.data == 'change_color':
turtle.color(*t.children) # We just pass the color names as-is
elif t.data == 'movement':
name, number = t.children
{ 'f': turtle.fd,
'b': turtle.bk,
'l': turtle.lt,
'r': turtle.rt, }[name](int(number))
elif t.data == 'repeat':
count, block = t.children
for i in range(int(count)):
run_instruction(block)
elif t.data == 'fill':
turtle.begin_fill()
run_instruction(t.children[0])
turtle.end_fill()
elif t.data == 'code_block':
for cmd in t.children:
run_instruction(cmd)
else:
raise SyntaxError('Unknown instruction: %s' % t.data)
示例2
def body():
'''
身体
'''
t.color("red", (255, 99, 71))
t.pu()
t.seth(90)
t.fd(-20)
t.seth(0)
t.fd(-78)
t.pd()
t.begin_fill()
t.seth(-130)
t.circle(100, 10)
t.circle(300, 30)
t.seth(0)
t.fd(230)
t.seth(90)
t.circle(300, 30)
t.circle(100, 3)
t.color((255, 155, 192), (255, 100, 100))
t.seth(-135)
t.circle(-80, 63)
t.circle(-150, 24)
t.end_fill()
示例3
def tail():
'''
尾巴
'''
t.pensize(4)
t.color((255, 155, 192))
t.pu()
t.seth(90)
t.fd(70)
t.seth(0)
t.fd(95)
t.pd()
t.seth(0)
t.circle(70, 20)
t.circle(10, 330)
t.circle(70, 30)
示例4
def head():
'''
头
'''
t.color((255, 155, 192), "pink")
t.pu()
t.seth(90)
t.fd(41)
t.seth(0)
t.fd(0)
t.pd()
t.begin_fill()
t.seth(180)
t.circle(300, -30) # 顺时针画一个半径为300,圆心角为30°的园
t.circle(100, -60)
t.circle(80, -100)
t.circle(150, -20)
t.circle(60, -95)
t.seth(161)
t.circle(-300, 15)
t.pu()
t.goto(-100, 100)
t.pd()
t.seth(-30)
a = 0.4
for i in range(60):
if 0 <= i < 30 or 60 <= i < 90:
a = a + 0.08
t.lt(3) # 向左转3度
t.fd(a) # 向前走a的步长
else:
a = a - 0.08
t.lt(3)
t.fd(a)
t.end_fill()
示例5
def ear():
'''
耳朵
'''
t.color((255, 155, 192), "pink")
t.pu()
t.seth(90)
t.fd(-7)
t.seth(0)
t.fd(70)
t.pd()
t.begin_fill()
t.seth(100)
t.circle(-50, 50)
t.circle(-10, 120)
t.circle(-50, 54)
t.end_fill()
t.pu()
t.seth(90)
t.fd(-12)
t.seth(0)
t.fd(30)
t.pd()
t.begin_fill()
t.seth(100)
t.circle(-50, 50)
t.circle(-10, 120)
t.circle(-50, 56)
t.end_fill()
示例6
def blusher():
'''
腮
'''
t.color((255, 155, 192))
t.pu()
t.seth(90)
t.fd(-95)
t.seth(0)
t.fd(65)
t.pd()
t.begin_fill()
t.circle(30)
t.end_fill()
示例7
def hand():
'''
手
'''
t.color((255, 155, 192))
t.pu()
t.seth(90)
t.fd(-40)
t.seth(0)
t.fd(-27)
t.pd()
t.seth(-160)
t.circle(300, 15)
t.pu()
t.seth(90)
t.fd(15)
t.seth(0)
t.fd(0)
t.pd()
t.seth(-10)
t.circle(-20, 90)
t.pu()
t.seth(90)
t.fd(30)
t.seth(0)
t.fd(237)
t.pd()
t.seth(-20)
t.circle(-300, 15)
t.pu()
t.seth(90)
t.fd(20)
t.seth(0)
t.fd(0)
t.pd()
t.seth(-170)
t.circle(20, 90)
示例8
def foot():
'''
脚
'''
t.pensize(10)
t.color((240, 128, 128))
t.pu()
t.seth(90)
t.fd(-75)
t.seth(0)
t.fd(-180)
t.pd()
t.seth(-90)
t.fd(40)
t.seth(-180)
t.color("black")
t.pensize(15)
t.fd(20)
t.pensize(10)
t.color((240, 128, 128))
t.pu()
t.seth(90)
t.fd(40)
t.seth(0)
t.fd(90)
t.pd()
t.seth(-90)
t.fd(40)
t.seth(-180)
t.color("black")
t.pensize(15)
t.fd(20)
示例9
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()
示例10
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)
示例11
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)
示例12
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)
示例13
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)
示例14
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)
示例15
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)
示例16
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)
示例17
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)
示例18
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)
示例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_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)
示例21
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)
示例22
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)
示例23
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)
示例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_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)
示例26
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)
示例27
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)
示例28
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)
示例29
def horizontal(dx): # 做到相对横坐标为dx的水平线
te.seth(0)
te.pendown()
te.fd(dx)
te.penup()
示例30
def vertical(dy): # 做到相对纵坐标为dy的垂直线
te.seth(-90)
te.pendown()
te.fd(dy)
te.penup()
te.seth(0)