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

Python Turtle绘制多分支星星:奇数分支无法生成完美图形

奇数分支星星绘制异常的解决办法

我需要用随机分支数绘制星星花朵,写了下面的Python函数:

def star(nb_branches:int , size:int) :
    for i in range(int(nb_branches / 2)) :
        forward(size * 3)
        left(180 - (360 / nb_branches))

(函数参数由其他函数随机生成,这部分没问题)
但发现当分支数为奇数时,无法生成完美的星星,推测问题出在循环次数和角度设置上,调整角度后还是没解决,奇数分支的错误效果是绘制出不闭合、线条错乱的图形。


问题根因

  1. 循环次数不足:奇数分支时,int(nb_branches/2)会直接截断小数部分(比如5分支只循环2次),导致超一半的分支没绘制,图形自然不完整。
  2. 对角度公式的场景误解:原角度公式本身是通用的,但因为循环次数没覆盖全部分支,才导致奇数分支时失效。

修正后的代码

def star(nb_branches: int, size: int):
    angle = 180 - (360 / nb_branches)
    # 循环次数等于总分支数,确保每条线都绘制
    for _ in range(nb_branches):
        forward(size * 3)
        left(angle)

直白解释

  • 不管分支数是奇是偶,都循环nb_branches次,把每个分支都画到,不会遗漏。
  • 原来的角度公式本身没问题,就是之前只画了一半的线,现在补全所有分支,就能画出闭合的完美星星了。

内容的提问来源于stack exchange,提问作者Clément

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 18:05:05