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

使用Python tkdraw绘制黑白竖条纹失败,求排查循环问题

问题排查:tkdraw绘制黑白竖条纹的循环逻辑错误

错误分析

你的代码核心问题集中在rayure_vertic函数的参数传递和循环逻辑上:

  • rectangle参数顺序混淆:rectangle(y1, y2, x1, x2)定义里,y1-y2是垂直高度范围,x1-x2是水平宽度范围,但你调用时把x坐标传给了y参数,导致绘制区域完全错位。
  • 竖条纹范围计算错误:要绘制竖条纹,应固定垂直范围为0到haut(覆盖整个窗口高度),水平范围从当前x到x+larg_bande,而非固定x范围为larg_bande到larg_bande*2。
  • 无效冗余代码:"rectangle(20,60,40,60)"是字符串,不会执行,可直接删除。

修正后的代码

import tkdraw.basic as graph
graph.open_win(120, 160)

def segment_horiz(y, x1, x2):
    for i in range(x1, x2):
        graph.plot(y, i)

def rectangle(y1, y2, x1, x2):
    for i in range(y1, y2):
        segment_horiz(i, x1, x2)

def rayure_vertic(haut, larg, larg_bande):
    # 循环步长设为条纹宽度的2倍,实现黑白交替
    for x in range(0, larg, larg_bande * 2):
        # 绘制黑色竖条,垂直覆盖整个窗口高度
        rectangle(0, haut, x, x + larg_bande)

rayure_vertic(120, 160, 20)
graph.wait()

修正说明

  • 调整循环步长为larg_bande*2,让黑色条纹和默认白色背景形成交替的竖条效果。
  • 调用rectangle时固定垂直范围为0到haut,水平范围基于当前循环变量x计算,确保每个竖条位置连续、宽度符合设定。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 19:45:35