Python Turtle绘制带十字中心的房屋代码故障排查求助
问题分析与代码修正
你的代码核心问题是移动距离与转向角度的序列逻辑混乱,没有按照房屋(正方形+屋顶)和中心十字的结构规划绘图路径,导致图形错位。
修正后的代码
import turtle def drawhouse(bob): # 绘制房屋主体(100x100正方形) for _ in range(4): bob.forward(100) bob.left(90) # 移动到屋顶起始点(正方形顶部中点) bob.penup() bob.forward(50) bob.left(90) bob.pendown() # 绘制屋顶(等腰直角三角形) bob.left(45) bob.forward(70.71) bob.right(90) bob.forward(70.71) bob.right(135) # 移动到十字中心(正方形中心) bob.penup() bob.backward(50) bob.right(90) bob.forward(50) bob.left(90) bob.pendown() # 绘制横向十字 bob.backward(50) bob.forward(100) bob.backward(50) # 绘制纵向十字 bob.left(90) bob.backward(50) bob.forward(100) def main(): screen = turtle.Screen() screen.bgcolor("white") screen.title("Turtle House") bob = turtle.Turtle() bob.color("black") bob.speed(0) drawhouse(bob) turtle.done() if __name__ == "__main__": main()
关键修正点
- 拆分绘图步骤:先画正方形主体,再画屋顶,最后画中心十字,逻辑更清晰
- 用
penup()和pendown()控制画笔,避免移动时留下多余线条 - 精准计算各阶段起始位置,确保屋顶居中在正方形顶部,十字居中在正方形中心
- 替换混乱的角度序列,用直观的循环和转向逻辑实现图形
效果说明
修正后的代码会绘制出:
- 100x100的正方形房屋主体
- 居中在顶部的等腰直角三角形屋顶
- 贯穿正方形中心的十字线条,完全匹配你预期的效果
内容的提问来源于stack exchange,提问作者Joshua Swartz
相关产品推荐
相关产品推荐

