下面展示 代码
利用函数递归
绘制科赫曲线
绘制雪花分型图案
import turtle
import time
def koch(angle,posx,posy,depth,length):
if depth == 0:
turtle.penup()
turtle.goto(posx,posy)
turtle.setheading(angle)
turtle.pendown()
turtle.forward(length)
return
koch(angle,posx,posy,depth-1,length/3)
for i in range(3):
current_x,current_y = turtle.pos()
if i == 1:
current_angle = turtle.heading() -120
else:
current_angle = turtle.heading() + 60
koch(current_angle,current_x,current_y,depth-1,length/3)
return
def drawSnowflake(angle,posx,posy,depth,length):
for i in range(3):
koch(angle,posx,posy,depth,length)
posx,posy = turtle.pos()
angle = turtle.heading() - 120
if __name__ == "__main__":
turtle.screensize(bg="gold")
turtle.setup(1200, 700)
turtle.pencolor("purple")
turtle.showturtle()
turtle.pensize(2)
turtle.speed(0)
start = time.perf_counter()
############################################
koch(0,-580,-300,5,900)
drawSnowflake(0,100,150,3,400) # (angle,posx,posy,depth,length)
# koch(0,-500,-200,4,900)
#############################################
t = time.perf_counter() - start
print("########",t)
time.sleep(1)
turtle.hideturtle()
turtle.mainloop()