请使用【Python】生成一双永恒万花筒写轮仅用turtle和
时间: 2024-10-20 15:19:25 浏览: 39
TD-Draw-my-street:TP“ Dessine ma rue” avec Python x Turtle(Travail Collectif)
在Python中,我们可以使用turtle模块来创建一个简单的万花筒(Tetris-style kaleidoscope)效果。这里我们将利用turtle库的旋转功能以及一些基本图形绘制来模拟万花筒的效果。首先,确保已安装了turtle库,如果没有,可以输入`pip install turtle`进行安装。
以下是一个简单的示例代码,它会生成一种随机变化的颜色和形状,看起来类似万花筒:
```python
import turtle
import random
# 设置窗口大小
window = turtle.Screen()
window.bgcolor('black')
window.setup(width=800, height=600)
# 创建画笔
pen = turtle.Turtle()
pen.speed(0) # 加快绘制速度
def draw_shape():
shapes = ['square', 'circle', 'triangle']
colors = ['red', 'blue', 'green', 'yellow', 'purple']
# 随机选择形状和颜色
shape = random.choice(shapes)
color = random.choice(colors)
if shape == 'square':
for _ in range(4):
pen.color(color)
pen.forward(random.randint(50, 100))
pen.right(90)
elif shape == 'circle':
pen.shape('turtle') # 使用turtle形状绘制圆形
pen.color(color)
pen.begin_fill()
while True:
pen.forward(random.randint(50, 100))
pen.left(360 / len(colors))
if pen.position()[0] > window.window_width() or pen.position()[0] < -window.window_width():
break
pen.end_fill()
else:
for _ in range(3):
pen.color(color)
pen.forward(random.randint(50, 100))
pen.left(120)
pen.penup()
pen.goto(-pen.xcor(), -pen.ycor()) # 移动到原点准备下一次绘制
pen.pendown()
# 创建无限循环
while True:
draw_shape()
pen.right(360 / 24) # 每次循环后旋转一点,模拟万花筒效果
# 等待用户关闭窗口
turtle.done()
阅读全文