import turtledef koch_curve(t, length, depth): """绘制科赫曲线的一段 t: 海龟 length: 当前线段长度 depth: 递归深度 """ if depth == 0: t.forward(length) return # 将线段分成三等分,中间一段替换为等边三角形的两条边 new_length = length / 3.0 koch_curve(t, new_length, depth-1) # 第一段 t.left(60) # 左转60度 koch_curve(t, new_length, depth-1) # 第二段(三角形的左边) t.right(120) # 右转120度 koch_curve(t, new_length, depth-1) # 第三段(三角形的右边) t.left(60) # 左转60度,回正方向 koch_curve(t, new_length, depth-1) # 第四段def draw_koch_snowflake(side_length, depth): """绘制完整的科赫雪花(由三条科赫曲线组成)""" t = turtle.Turtle() screen = turtle.Screen() t.speed(0) t.penup() t.goto(-side_length/2, side_length/3) # 调整起始位置 t.pendown() for _ in range(3): # 等边三角形的三条边 koch_curve(t, side_length, depth) t.right(120) # 转120度,画下一条边 screen.exitonclick()# 绘制深度为3的科赫雪花draw_koch_snowflake(300, 3)