资讯动态

根据阶数生成绘制科赫雪花

发布时间:2026/10/29 21:44:26 来源:尧图企业网站定制
运行代码import turtle import math def koch_curve(t, order, size): 递归绘制科赫曲线分形基础单元 if order 0: t.forward(size) else: for angle in [60, -120, 60, 0]: koch_curve(t, order - 1, size / 3) t.left(angle) def koch_snowflake(t, order, size): 绘制科赫雪花由三段科赫曲线组成 for _ in range(3): koch_curve(t, order, size) t.right(120) def main(): # 设置窗口 screen turtle.Screen() screen.title(科赫雪花 - 0~4阶分形对比展示) screen.setup(900, 900) screen.bgcolor(#f8f9fa) # 创建画笔 t turtle.Turtle() t.speed(0) t.pensize(1.2) # 每个阶数对应的位置、大小、颜色 positions [ (-350, 250), # 0阶 (-100, 250), # 1阶 (150, 250), # 2阶 (-250, -50), # 3阶 (50, -50) # 4阶 ] sizes [180, 180, 180, 180, 180] colors [#222222, #0066cc, #28a745, #ff7f0e, #dc3545] # 循环绘制各阶雪花 for order in range(5): t.penup() t.goto(positions[order]) t.pendown() t.color(colors[order]) koch_snowflake(t, order, sizes[order]) # 阶数文字标注 t.penup() t.goto(positions[order][0], positions[order][1] - 60) t.pendown() t.color(#333333) t.write(f{order}阶, aligncenter, font(SimHei, 12, bold)) t.hideturtle() turtle.done() if __name__ __main__: main()运行截图作业心得调试代码时我重点关注画笔抬笔、移动位置、角度控制等细节。如果忘记penup()移动画笔时会多出多余线条旋转角度出错雪花图形就会扭曲闭合失败。给每一阶雪花设置不同颜色、增加文字标注后不同阶数的对比效果更加清晰方便观察分形演化过程。通过本次实验我理解了分形、自相似、递归这几个概念体会到递归算法 “自己调用自己、设置终止条件” 的编程范式

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑