用python制作一个矩形的红黄绿灯
时间: 2024-10-14 18:11:53 浏览: 18
要使用Python制作一个简单的矩形红绿黄灯动画,我们可以使用`PIL`(Python Imaging Library)库来处理图像,以及`time`模块来控制灯光的变化。以下是一个简化的例子:
```python
from PIL import Image, ImageDraw, ImageFont
import time
# 创建一个空的RGB图像,尺寸根据需求调整
image_size = (500, 500)
background_color = (255, 255, 255) # 白色背景
light_colors = [(255, 0, 0), (0, 255, 0), (0, 0, 255)] # 红、黄、绿颜色
# 初始化图像和绘图工具
img = Image.new('RGB', image_size, background_color)
draw = ImageDraw.Draw(img)
font = ImageFont.truetype("arial.ttf", size=60) # 假设您有arial.ttf字体文件
def draw_light(color):
text = "GO" if color == light_colors[0] else ("STOP" if color == light_colors[1] else "WAIT")
text_pos = ((image_size[0] - font.getsize(text)[0]) // 2, image_size[1] // 2)
draw.text(text_pos, text, fill=color)
# 主循环,模拟灯交替闪烁
while True:
for i in range(3): # 红黄绿循环
draw_light(light_colors[i])
img.save(f"light_{i}.png") # 保存当前灯光状态到图片文件
time.sleep(1) # 暂停1秒
# 等待下一个循环开始前,先切换回白色背景
img = Image.new('RGB', image_size, background_color)
draw = ImageDraw.Draw(img)
draw_light(light_colors[(i+1) % 3]) # 下一个颜色
img.save("light_white.png")
# 运行这个程序,会在当前目录下生成一系列的图片文件
```
在这个例子中,我们创建了一个无限循环,每秒钟改变一次灯光的颜色。你可以根据需要修改颜色顺序或添加更复杂的逻辑。如果你没有`arial.ttf`字体文件,你需要替换为实际存在的字体路径。
阅读全文