赞
踩
- import turtle
- import random
-
- # 初始化屏幕
- screen = turtle.Screen()
- screen.bgcolor("black")
- screen.title("烟花模拟")
-
- # 创建一个Turtle来绘制烟花
- firework = turtle.Turtle()
- firework.hideturtle()
- firework.speed(0) # 设置绘图速度为最快
-
- # 绘制烟花的爆炸效果
- def explode(x, y, colors):
- firework.penup()
- firework.goto(x, y)
- firework.pendown()
- for _ in range(36): # 创建36条线,形成一个圆形的爆炸效果
- color = random.choice(colors) # 随机选择颜色
- firework.color(color)
- firework.forward(60)
- firework.backward(60)
- firework.right(10)
-
- # 循环创建多个烟花效果
- def firework_show():
- screen.clear()
- screen.bgcolor("black")
- colors = ["red", "yellow", "blue", "green", "white", "pink", "orange"]
- for _ in range(10): # 创建10个烟花
- x = random.randint(-150, 150)
- y = random.randint(-150, 150)
- explode(x, y, colors)
- screen.update() # 更新屏幕以显示绘制的烟花
- firework_show() # 递归调用以持续显示烟花
-
- firework_show()
-
- # 保持窗口打开直到用户关闭它
- turtle.done()
这段代码首先导入了turtle和random模块,然后初始化了一个黑色背景的屏幕,并创建了一个Turtle对象来绘制烟花。explode函数负责在屏幕上的指定位置绘制一个颜色随机的烟花爆炸效果,通过绘制36条从中心向外的线段来模拟。firework_show函数循环调用explode函数来在屏幕上的随机位置创建多个烟花效果,并且通过递归调用自身来持续显示烟花。
重点可以概括为以下几个方面:
1.初始化:
- 使用Turtle模块创建绘图窗口,并设置背景颜色为黑色,以模拟夜空。
- 创建一个Turtle对象(这里命名为firework),用于绘制烟花。该对象的速度被设置为最快(firework.speed(0)),并且初始状态是隐藏的,以便在绘制过程中不显示移动轨迹。
2.绘制烟花爆炸效果:
- 定义了一个函数explode(x, y, colors),负责在指定位置(x, y)绘制烟花爆炸效果。这个效果通过循环绘制36条从同一起点向外延伸的线段来实现,模拟烟花爆炸后向四周扩散的视觉效果。
- 在绘制每条线段时,颜色是随机选择的,增加了烟花的多彩效果。
- 每绘制完一条线段后,firework会回到起点,转动一个固定角度(这里是10度),然后继续绘制下一条线段,直到完成圆形的爆炸效果。
3.循环创建多个烟花效果:
- 定义了一个函数firework_show(),用于循环创建并显示多个烟花。在这个函数中,首先清除屏幕,然后在循环中通过调用explode函数在随机位置绘制烟花,每次都使用一组预定义的颜色列表中随机选取的颜色。
- 通过递归调用firework_show()函数,实现了连续不断地显示烟花效果,模拟了烟花表演的持续性。
4.结束条件:
- 使用turtle.done()保持窗口打开,直到用户手动关闭,这样可以让用户有足够的时间欣赏绘制出的烟花效果。
这段代码展示了如何使用Python的Turtle模块来进行基本的图形绘制和动画制作,通过简单的循环和颜色变换,实现了烟花爆炸效果的基本模拟。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。