lilili07 2021-12-07 20:43 采纳率: 74.1%
浏览 50
已结题

python 用if和while语句制作一个长300宽100的长方形

帮帮我 实验室的实在是写不出来了就是用if和while语句制作一个长300宽100的长方形然后长方形里在做一个长宽任意的长方形,在这个长方形中在做一个长方形,就是有三层长方形然后最里面的一层和第二层之间要用东西填充好,填充厚度是5

img

  • 写回答

2条回答 默认 最新

  • chuifengde 2021-12-07 22:30
    关注
    import turtle    # 导入画图库
     
    turtle.setup(800, 600)  # 确定当前窗口大小
    T = turtle.Turtle()     # 创建一支画笔
    
    
    # 此函数用来画长方形
    #   t:就是前面的创建的画笔
    # pos:画每一个长方形时起点的x,y坐标,是列表形式
    # length:长方形的长    height:长方形的高
    #   fill:决定长方形内是否填充  True就填充,color并同时起作用,它是填充颜色,fill=False,不填充,color不起作用
    def draw(t,pos, length, height, fill=False, color='red'):
        t.up()                      # 先抬笔,为了下一句定位时不在画面上留轨迹
        t.setpos(pos[0], pos[1])    # 将画笔定位在pos的x,y坐标点
    
        t.pd()                      # 落笔
        if fill == True:           #如果填充 
            t.fillcolor(color)      #设置填充色 
            t.begin_fill()          # 开始填充
        i = 0                       # 决定循环次数,备下面的循环画长方形的线
        while i < 2:
            t.fd(length)            # 前进length长度,画长
            t.lt(90)                # 左转90度
            t.fd(height)            # 前进height长度,画高
            t.lt(90)                # 左转90度
            i += 1                  # i+1,决定步进次数
        if fill == True:           # 如果填充,要结束填充
            t.end_fill()
        t.up()                     # 画完抬笔
        return t.xcor(), t.ycor()  #画完一个长方形后,返回当前的x,y坐标,就是当前位置,以备计算画下一次长方形的起始点位置
    
    T.hideturtle()                 # 隐藏画笔
    x, y = draw(T, [-150, -50], 300, 100, False)            # 画第一个最大的长方形,不填充颜色,x,y分别是画完后的画笔位置
    xx, yy = draw(T, [x + 75, y + 25], 150, 50, True, 'red')# 画第二个中间大的长方形,填充颜色,红色,以上面的x,y来计算当前的起始位置
    xxx, yyy = draw(T, [xx + 5, yy + 5], 140, 40, True, 'white') # 画最小的长方形,填充颜色,白色,为了覆盖第二次的红色
    
    
    turtle.done()                                            # 界面停留时必用
    
    

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 12月18日
  • 已采纳回答 12月10日
  • 创建了问题 12月7日

悬赏问题

  • ¥15 用lstm来预测股票价格
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥170 如图所示配置eNSP
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效
  • ¥15 悬赏!微信开发者工具报错,求帮改
  • ¥20 wireshark抓不到vlan
  • ¥20 关于#stm32#的问题:需要指导自动酸碱滴定仪的原理图程序代码及仿真
  • ¥20 设计一款异域新娘的视频相亲软件需要哪些技术支持
  • ¥15 stata安慰剂检验作图但是真实值不出现在图上