python - 如何创建 Turtle 克隆并将它们附加到列表中?
问题描述
我想编写一个程序,在 3 行中绘制 5 个正方形。每个第二个方块都是不同的颜色。
所以到目前为止我已经准备好了方块
sq1 = turtle.Turtle()
sq1.shape("square")
sq1.hideturtle()
sq1.color("red")
sq1.begin_fill()
sq2 = turtle.Turtle()
sq2.shape("square")
sq2.hideturtle()
sq2.color("black")
sq2.begin_fill()
正如你可以想象的那样,输入 15 个 clone.turtles 并为它们中的每一个输入一个不同的位置将需要很长时间。我的目标是为此目的创建一个简单的列表。只是我不知道如何将所有不同的方块放入列表中,以及如何设法将它们移动到不同的位置。
解决方案
在循环中创建海龟for
,并在每次迭代中将海龟附加到列表中。
您可以定义一个函数:
import turtle
def draw_squares(rows, cols, x=0, y=0, size=20):
colors = ['red', 'black']
square = []
for i in range(cols):
for j in range(rows):
t = turtle.Turtle('square')
t.penup()
t.shapesize(size / 20)
t.goto(i * size + x, j * size + y)
t.color(colors[(i + j) % 2])
square.append(t)
return squares
squares = draw_squares(3, 5, size=40)
输出:
其中x
和y
是左下角正方形中心的坐标,size
是每个正方形的像素大小,rows
和cols
是棋盘中的行数和列数。
更新
根据评论中的要求,以下是我们如何更改每个矩形之间的宽度、高度和间距:
import turtle
def draw_squares(rows, cols, x=-170, y=0, w=80, h=40, space=5):
colors = ['red', 'black']
square = []
for i in range(cols):
for j in range(rows):
t = turtle.Turtle('square')
t.penup()
t.shapesize(h / 20, w / 20)
t.goto(i * space + i * w + x,j * space + j * h + y)
t.color('white', colors[(i + j) % 2])
square.append(t)
return squares
squares = draw_squares(3, 5)
输出:
哪里w
是宽度,h
是高度,space
是间距。
推荐阅读
- javascript - 从另一台计算机调用我的页面时,httprequest 不起作用
- html - 离子载玻片中的离子卡全高
- javascript - 通过 Javascript 获取数组或对象的名称
- java - Java JNDI 查找名称兼容 Tomcat 和 Weblogic
- android - 将css渐变转换为android渐变(xml)
- php - mysqli_query() 失败 MAMP Phpmyadmin PHP
- python - 根据输入显示不同的字符串
- laravel - 使用 axios 从我的 react 本机应用程序将图片发送到我的 laravel API
- javascript - 将外部 jsx 文件添加到 html 页面(反应)
- pdf - 矩形工具 - 在屏幕上着色,但以 pdf 格式打印时清晰/透明?