下面是两个 Python 代码示例,分别用来绘制不同类型的烟花效果。
### 1. 烟花喷泉
这个例子使用了 Python 的 turtle 模块来实现图形绘制,通过控制小海龟的移动和绘制来模拟烟花喷泉的效果。
```python
import turtle
import random
# 设置画布
wn = turtle.Screen()
wn.bgcolor("black")
# 创建小海龟
firework = turtle.Turtle()
firework.speed(0)
firework.color("white")
firework.shape("circle")
# 设置爆炸颜色
colors = ["red", "orange", "yellow", "green", "blue", "purple", "pink"]
# 定义爆炸函数
def explode(x, y):
firework.penup()
firework.goto(x, y)
# 绘制喷泉效果
for _ in range(25):
firework.speed(0)
firework.color(random.choice(colors))
firework.width(random.randint(1, 3))
firework.forward(20)
firework.right(15)
firework.backward(20)
# 设置点击事件
def click(x, y):
explode(x, y)
# 监听点击事件
firework.onclick(click)
# 隐藏小海龟
firework.hideturtle()
# 显示画布
wn.mainloop()
```
### 2. 彩虹烟花
这个例子使用了 Python 的 turtle 模块和 colorsys 模块来实现图形绘制,通过控制小海龟的移动和绘制来模拟烟花在空中喷发时的彩虹效果。
```python
import turtle
import random
import colorsys
# 设置画布
wn = turtle.Screen()
wn.bgcolor("black")
# 创建小海龟
firework = turtle.Turtle()
firework.speed(0)
firework.color("white")
firework.shape("circle")
# 定义爆炸函数
def explode(x, y):
firework.penup()
firework.goto(x, y)
# 绘制彩虹烟花
for i in range(60):
hue = i / 60.0
rgb = colorsys.hsv_to_rgb(hue, 1, 1)
r, g, b = [int(255 * c) for c in rgb]
firework.color(r, g, b)
firework.begin_fill()
firework.circle(10)
firework.end_fill()
firework.right(6)
# 设置点击事件
def click(x, y):
explode(x, y)
# 监听点击事件
firework.onclick(click)
# 隐藏小海龟
firework.hideturtle()
# 显示画布
wn.mainloop()
```
这两个例子都使用了 turtle 模块来实现图形绘制,其中第一个例子模拟了烟花喷泉的效果,第二个例子则模拟了烟花在空中喷发时的彩虹效果。你可以在本地环境中运行这些代码,观察烟花的动画效果。