使用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
相关产品推荐
相关产品推荐

