python画静态烟花_python代码绘制动态烟花(代码简单只需二十几行)
时间: 2023-06-17 22:08:35 浏览: 51
以下是一个简单的 Python 代码,可以用来绘制静态烟花:
```python
import turtle
import random
turtle.speed(0)
turtle.hideturtle()
for i in range(50):
turtle.penup()
x = random.randint(-200, 200)
y = random.randint(-200, 200)
turtle.goto(x, y)
turtle.pendown()
turtle.dot(random.randint(10, 50), random.choice(["red", "orange", "yellow", "green", "blue", "purple", "pink"]))
turtle.done()
```
这段代码使用了 turtle 模块来绘制烟花,通过循环随机生成烟花的坐标和大小,然后随机选择颜色进行绘制。
如果你想要绘制动态烟花,可以使用 Pygame 或者 Turtle 的 tracer() 方法来实现。以下是一个使用 Pygame 的例子:
```python
import pygame
import random
pygame.init()
screen_width = 500
screen_height = 500
screen = pygame.display.set_mode((screen_width, screen_height))
clock = pygame.time.Clock()
class Particle:
def __init__(self, x, y, size, color, speed):
self.x = x
self.y = y
self.size = size
self.color = color
self.speed = speed
self.angle = random.uniform(0, 2 * math.pi)
self.vx = self.speed * math.cos(self.angle)
self.vy = -self.speed * math.sin(self.angle)
self.gravity = 0.2
def move(self):
self.x += self.vx
self.y += self.vy
self.vy += self.gravity
def draw(self):
pygame.draw.circle(screen, self.color, (int(self.x), int(self.y)), self.size)
particles = []
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
exit()
if random.random() < 0.2:
x = random.randint(100, screen_width - 100)
y = random.randint(100, screen_height - 100)
size = random.randint(5, 20)
color = (random.randint(0, 255), random.randint(0, 255), random.randint(0, 255))
speed = random.uniform(1, 5)
particle = Particle(x, y, size, color, speed)
particles.append(particle)
for particle in particles:
particle.move()
particle.draw()
pygame.display.update()
screen.fill((0, 0, 0))
clock.tick(60)
```
这段代码使用了 Pygame 来创建窗口,并且定义了一个 Particle 类来表示烟花粒子。在主循环中,每隔一段时间就会生成一个新的烟花粒子,并且将它们添加到一个列表中。然后,在每一帧中,对列表中的所有粒子进行移动和绘制。