Python Turtle绘制雪人时按钮圆圈无法正常绘制问题排查
Python Turtle雪人绘制程序纽扣异常修复
问题根因
纽扣无法正常绘制是4个细节错误导致的:
- 两处纽扣绘制位置的落笔代码写错:你写的是
turt.pendown,这只是引用函数对象,没有加括号执行调用,海龟全程保持抬笔状态,自然画不出痕迹 - 填充逻辑位置错误:眼睛、下方纽扣的
begin_fill()和end_fill()被写在了画圆的for循环内部,每前进一小段就执行一次填充,无法形成完整的实心圆形 - 海龟朝向未重置:画完嘴巴部分你调用了
turt.right(90)修改了朝向,后续画纽扣前没有调整朝向,导致绘制路径偏移,出不来正圆 - 上方纽扣(坐标y=100位置)没有添加填充逻辑,就算绘制成功也是空心,和雪人纽扣的实心样式不匹配
修正后可运行代码
import turtle turt = turtle.Turtle() turt.speed(0) # 0为turtle最快绘制速度,原参数100000超出0-10的有效范围不生效 # 最下方雪人身体大圈 for i in range(36): turt.forward(18) turt.right(10) # 中间雪人身体圈 for i in range(36): turt.forward(12) turt.left(10) # 雪人头 turt.penup() turt.goto(0, 228) turt.pendown() for i in range(36): turt.forward(8) turt.right(10) # 左眼 turt.penup() turt.goto(-7, 200) turt.pendown() turt.begin_fill() for i in range(36): turt.forward(1) turt.right(10) turt.end_fill() # 右眼 turt.penup() turt.goto(20, 200) turt.pendown() turt.begin_fill() for i in range(36): turt.forward(1) turt.right(10) turt.end_fill() # 嘴巴 turt.penup() turt.goto(-5, 175) turt.pendown() turt.right(90) for i in range(18): turt.forward(2) turt.left(10) # 第一颗纽扣 turt.penup() turt.goto(-3, 100) turt.setheading(0) # 重置朝向保证绘制正圆 turt.pendown() # 补全括号调用落笔函数 turt.begin_fill() for i in range(36): turt.forward(2) turt.right(10) turt.end_fill() # 第二颗纽扣 turt.penup() turt.goto(-3, 80) turt.setheading(0) # 重置朝向 turt.pendown() # 补全括号调用落笔函数 turt.begin_fill() for i in range(36): turt.forward(2) turt.right(10) turt.end_fill() turtle.done()
内容的提问来源于stack exchange,提问作者OwenSucksAtCoding
相关产品推荐
相关产品推荐

