You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

我的科赫曲线生成算法为何无法正常运行?

问题分析与解决:科赫曲线Turtle代码仅旋转无绘制

问题根源

你的代码存在两个核心问题,导致程序只执行旋转动作就停止:

  • 递归逻辑断裂:函数中仅当degree == 0时才执行t.forward(length),但当degree > 0但length < 3时,代码没有任何绘图操作直接返回。这会让递归到某一层时,后续的前进步骤全部缺失,上层的旋转操作执行后没有对应的线段绘制,最终看起来只有旋转。
  • degree参数设置不合理:科赫曲线的阶数(degree)不需要设为50,通常3-5阶就能生成足够复杂的图案。当degree=50时,递归深度极大,length会快速缩小到远小于3,直接触发上面的逻辑漏洞,导致绝大多数递归调用都没有绘图动作。

修正后的代码

调整递归逻辑,补充length < 3时的绘图操作,同时设置合理的degree值:

import turtle as t

def kochCurve(length, degree):
    if degree == 0:
        t.forward(length)
    else:
        # 当length过小时,直接绘制线段,避免递归断裂
        if length < 3:
            t.forward(length)
        else:
            length = length / 3
            degree = degree - 1
            kochCurve(length, degree)
            t.right(60)
            kochCurve(length, degree)
            t.right(240)
            kochCurve(length, degree)
            t.right(60)
            kochCurve(length, degree)

# 使用合理的阶数,比如3阶
kochCurve(300, 3)
t.done()  # 保持窗口不自动关闭

补充说明

  • 添加t.done()可以让绘图窗口保持打开,避免程序结束后窗口立刻关闭。
  • 调整length为300可以让图案更清晰,你也可以根据需要修改这个值。

内容的提问来源于stack exchange,提问作者superfastsi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 05:22:40