我需要使用具有相同图案的 16 个图块和使用 python 的三种或更多不同颜色的循环编程构造来创建马赛克
I need to create a mosaic using the loop programming construct with 16 tiles of the same pattern and three or more different colors using python
对于我的作业,我必须使用乌龟创建一个形状,然后将该形状变成一个由 16 个瓷砖组成的 4 * 4 图案马赛克。我创建了海龟形状,但我为制作马赛克所做的每一次尝试都以错误或无输出而告终。这是我在这个项目中使用的乌龟形状。如何使用此形状创建马赛克?
import turtle
wn = turtle.Screen()
wn.bgcolor('white')
wn.setup(500,500)
bob = turtle.Turtle()
bob.speed(10)
bob.pensize(2)
bob.color('purple')
for i in range(20):
bob.left(140)
bob.forward(100)
bob.hideturtle()
“无输出”可能意味着 window 正在自行关闭。尝试将其添加到末尾以防止出现这种情况:
# ...
bob.hideturtle()
input('press enter to exit')
你可以通过传送到你想要绘制每个形状的地方多次绘制相同的形状。
def shape():
for i in range(18):
bob.left(140)
bob.forward(100)
# coordinates of each of the shapes
# these are completely arbitrary
# you can change these to whatever (adjust spacing, change where they are, etc)
# you can also write this using ranges if you want
for x in (-100, 0, 100, 200):
for y in (-150, -50, 50, 150):
bob.penup()
bob.setposition(x, y)
bob.pendown()
shape()
这将遍历所有 16 个点,-100, -150
,-100, -50
,-100, 50
,...,200, 150
。
请注意,我将你的形状更改为仅循环 18 次 - 这使得总旋转为 360 度的倍数,因此下一个形状不会倾斜。此外,该形状只有 18 个这样的边,因此绘制额外的 2 个将是一种浪费。 This is what would happen if it was left at 20.
输出:
对于我的作业,我必须使用乌龟创建一个形状,然后将该形状变成一个由 16 个瓷砖组成的 4 * 4 图案马赛克。我创建了海龟形状,但我为制作马赛克所做的每一次尝试都以错误或无输出而告终。这是我在这个项目中使用的乌龟形状。如何使用此形状创建马赛克?
import turtle
wn = turtle.Screen()
wn.bgcolor('white')
wn.setup(500,500)
bob = turtle.Turtle()
bob.speed(10)
bob.pensize(2)
bob.color('purple')
for i in range(20):
bob.left(140)
bob.forward(100)
bob.hideturtle()
“无输出”可能意味着 window 正在自行关闭。尝试将其添加到末尾以防止出现这种情况:
# ...
bob.hideturtle()
input('press enter to exit')
你可以通过传送到你想要绘制每个形状的地方多次绘制相同的形状。
def shape():
for i in range(18):
bob.left(140)
bob.forward(100)
# coordinates of each of the shapes
# these are completely arbitrary
# you can change these to whatever (adjust spacing, change where they are, etc)
# you can also write this using ranges if you want
for x in (-100, 0, 100, 200):
for y in (-150, -50, 50, 150):
bob.penup()
bob.setposition(x, y)
bob.pendown()
shape()
这将遍历所有 16 个点,-100, -150
,-100, -50
,-100, 50
,...,200, 150
。
请注意,我将你的形状更改为仅循环 18 次 - 这使得总旋转为 360 度的倍数,因此下一个形状不会倾斜。此外,该形状只有 18 个这样的边,因此绘制额外的 2 个将是一种浪费。 This is what would happen if it was left at 20.
输出: