大家注意:因为微信最近又改了推送机制,经常有小伙伴说错过了之前被删的文章,比如前阵子冒着风险写的爬虫,再比如一些限时福利,错过了就是错过了。
所以建议大家加个星标,就能第一时间收到推送。👇
大家好,我是爱搞事情的了不起,今天给大家分享使用Turtle画五彩气球,先给大家看一下效果!
效果演示
五彩斑斓的气球可以作为背景添加到视频中,效果很棒,氛围感一绝!
老生常谈啦,在用python画气球前,先给大家介绍一下turtle。
Turtle画板
turtle.setup(width,height):设置画板的大小
Turtle画笔
turtle.penup():抬起画笔
turtle.pendown():放下画笔
turtle.pensize():控制画笔的大小
turtle.pencolor():控制画笔的颜色
turtle.hideturtle():隐藏画笔
Turtle画图
turtle.forward(x):将画笔向前移动x个像素(x可以理解为距离)
turtle.backward(x):将画笔向后移动x个像素(x可以理解为距离)
turtle.left(n):将画笔向左旋转n度
turtle.right(n):将画笔向右旋转n度
turtle.speed():设置画笔画图的速度(1~10递增,0最快
turtle介绍完了,让我们一起来模拟气球吧!
漂浮函数
设置气球的移动方向和速度。当气球漂出了画布时,重新生成一个气球,给气球着色。
def move(self): #气球移动函数
if self.y <= 500: #当气球还在画布中时
self.y += self.speed #设置上下移动速度
self.x += self.speed * math.sin(self.f) #设置左右移动速度
self.f += 0.1 #可以理解成标志,改变左右移动的方向
else: #当气球漂出了画布时,重新生成一个气球
self.r = ra.randint(12,20)
self.x = ra.randint(-1000,1000)
self.y = -500
self.f = ra.uniform(-3.14,3.14)
self.speed = ra.randint(5,10)
self.color = ra.choice(colors)
self.outline = 1
气球函数
用turtle画气球
def draw(self):
t.penup()
t.goto(self.x,self.y)
t.pendown()
t.color(self.color)
t.left(45)
t.begin_fill()
t.fillcolor(self.color)
for i in range(2):
t.circle(self.r*2, 90)
t.circle(self.r, 90)
t.end_fill()
t.hideturtle()
t.circle(self.r,-45)
t.right(90)
t.circle(20,90)
写上祝福
tu.penup() #写祝福
tu.goto(-250,20)
tu.pendown()
tu.color("skyblue")
tu.write("祝你快乐每一天!",font=("黑体", 80,"italic")) #"italic"表示斜体
tu.hideturtle()
完整程序
import turtle as tu
import random as ra
import math
tu.setup(1.0, 1.0)
t = tu.Pen()
t.ht() #隐藏小海龟
colors = ['red','skyblue','orange','yellow','lime','pink','violet']
class Balloon(): #每个气球(气球类)
def __init__(self):
self.r = ra.randint(12,20) #气球的半径
self.x = ra.randint(-1000,1000) #气球的横坐标
self.y = ra.randint(-500,500) #气球的纵坐标
self.f = ra.uniform(-3.14,3.14) #气球左右移动呈正弦函数
self.speed = ra.randint(5,10) #气球移动速度
self.color = ra.choice(colors) #气球的颜色
self.outline = 1 #气球的外框大小(可不要)
def move(self): #气球移动函数
if self.y <= 500: #当气球还在画布中时
self.y += self.speed #设置上下移动速度
self.x += self.speed * math.sin(self.f) #设置左右移动速度
self.f += 0.1 #可以理解成标志,改变左右移动的方向
else: #当气球漂出了画布时,重新生成一个气球
self.r = ra.randint(12,20)
self.x = ra.randint(-1000,1000)
self.y = -500
self.f = ra.uniform(-3.14,3.14)
self.speed = ra.randint(5,10)
self.color = ra.choice(colors)
self.outline = 1
def draw(self): #画气球函数,就是用turtle画气球
t.penup()
t.goto(self.x,self.y)
t.pendown()
t.color(self.color)
t.left(45)
t.begin_fill()
t.fillcolor(self.color)
for i in range(2):
t.circle(self.r*2, 90)
t.circle(self.r, 90)
t.end_fill()
t.hideturtle()
t.circle(self.r,-45)
t.right(90)
t.circle(20,90)
Balloons = [] #用列表保存所有气球
for i in range(100):
Balloons.append(Balloon())
tu.bgcolor('black')
while True: #开始漂浮
tu.tracer(0)
t.clear()
for i in range(50): #在画布中设置50个漂浮的气球
Balloons[i].move()
Balloons[i].draw()
tu.penup() #写祝福
tu.goto(-250,20)
tu.pendown()
tu.color("skyblue")
tu.write("祝你快乐每一天!",font=("黑体", 80,"italic")) #"italic"表示斜体
tu.hideturtle()
tu.update()
tu.mainloop()
交流群
时隔2个月,摸鱼学习交流群再次限时开放了。
Python技术交流群(技术交流、摸鱼、白嫖课程为主)又不定时开放了,感兴趣的朋友,可以在下方公号内回复:666,即可进入,一起 100 天计划!
老规矩,酱友们还记得么,右下角的 “在看” 点一下,如果感觉文章内容不错的话,记得分享朋友圈让更多的人知道!
【神秘礼包获取方式】
扫描下方二维码添加私人微信,再送一套精华电子书!,回复:电子书