画蛇
import turtle
"""
画五角星
顺序结构
import turtle
turtle.setup(2000, 2000, 0, 0)
turtle.pensize(20)
turtle.pencolor("black")
turtle.seth(0)
turtle.fd(400)
turtle.seth(-144)
turtle.fd(400)
turtle.seth(-144-144)
turtle.fd(400)
turtle.seth(-144 - 144-144)
turtle.fd(400)
turtle.seth(-144 - 144-144-144)
turtle.fd(400)
循环结构
import turtle
turtle.setup(2000, 2000, 0, 0)
turtle.pensize(20)
turtle.pencolor("black")
turtle.seth(0)
length = 400
angle = 0
for i in range(5):
turtle.fd(length)
angle = angle - 144
turtle.seth(angle)
循环递归函数
import turtle
def drawFivePiontedStar(length, angle):
"""
Draw five_pointed_star by turtle library
Initial screen ;width+height+initial position
Initial pen: font+color
Drawing line by recursive_function
:param length: Initial five_pointed_star length
:param angle: Initial position
:return: None
"""
def drawline(length, angle):
turtle.seth(angle)
turtle.fd(length)
turtle.setup(2000, 2000, 0, 0)
turtle.pensize(20)
turtle.pencolor("black")
for i in range(5):
drawline(length, angle)
angle = angle-144
if __name__ == "__main__":
drawFivePiontedStar(400, 0)
画树
import turtle
def branch(length, level):
"""
使用递归函数实现画树
以没有树杈为例
起始角度为90°
向左转换角45°,看有没有树杈(level)
如果没有,向右转换角90°(-45),看有没有树杈
如果没有,向右转换45°(0),返回原路
"""
if level <= 0:
return
turtle.forward(length)
turtle.left(45)
branch(0.6 * length, level - 1) # 90
turtle.right(90)
branch(0.6 * length, level - 1)
turtle.left(45)
turtle.backward(length)
return
if __name__ == "__main__":
turtle.left(90)
branch(100, 3)