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

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 00:13:13