📜  2. 写一个程序来画这个.假设最里面的正方形每边有 20 个单位,每个连续的正方形每边比里面的那个大 20 个单位. - 打字稿(1)

📅  最后修改于: 2023-12-03 14:59:03.663000             🧑  作者: Mango

程序简介

这个程序可以绘制一个由多个正方形组成的图形,每个正方形的边长都比它内部的正方形大20个单位。

程序实现

程序使用Python语言实现。

首先需要导入turtle模块来进行绘制:

import turtle

定义一个drawSquare函数,用于绘制正方形:

def drawSquare(t, sz):
    """
    绘制一个边长为sz的正方形
    t: Turtle 对象
    sz: 正方形的边长
    """
    for i in range(4):
        t.forward(sz)
        t.left(90)

接下来我们循环调用drawSquare函数,每次绘制一个新的比上一个大20个单位的正方形,同时将画笔位置向左上角平移一定的距离,起到居中的作用:

def drawSquareSpiral():
    """
    绘制一个由多个正方形组合成的图形
    """
    # 创建一个Turtle对象
    t = turtle.Turtle()
    # 设置画笔大小和画布大小
    t.pensize(2)
    turtle.setup(width=800, height=600)
  
    size = 20
    # 绘制5个正方形
    for i in range(5):
        drawSquare(t, size)
        size += 20
        # 向左上角平移一定的距离
        t.penup()
        t.right(90)
        t.forward(10)
        t.left(90)
        t.backward(10)
        t.pendown()
    # 隐藏画笔
    t.hideturtle()
    # 点击窗口关闭
    turtle.done()

最后调用drawSquareSpiral函数即可绘制出图形。

代码片段

import turtle

def drawSquare(t, sz):
    """
    绘制一个边长为sz的正方形
    t: Turtle 对象
    sz: 正方形的边长
    """
    for i in range(4):
        t.forward(sz)
        t.left(90)

def drawSquareSpiral():
    """
    绘制一个由多个正方形组合成的图形
    """
    # 创建一个Turtle对象
    t = turtle.Turtle()
    # 设置画笔大小和画布大小
    t.pensize(2)
    turtle.setup(width=800, height=600)

    size = 20
    # 绘制5个正方形
    for i in range(5):
        drawSquare(t, size)
        size += 20
        # 向左上角平移一定的距离
        t.penup()
        t.right(90)
        t.forward(10)
        t.left(90)
        t.backward(10)
        t.pendown()
    # 隐藏画笔
    t.hideturtle()
    # 点击窗口关闭
    turtle.done()

drawSquareSpiral()