用Python制作五彩气球,氛围感绝了!

大家注意:因为微信最近又改了推送机制,经常有小伙伴说错过了之前被删的文章,比如前阵子冒着风险写的爬虫,再比如一些限时福利,错过了就是错过了。

所以建议大家加个星标,就能第一时间收到推送。👇

4c28e3ab3acffc9039b5d5784998ee8b.jpeg


大家好,我是爱搞事情的了不起,今天给大家分享使用Turtle画五彩气球,先给大家看一下效果!

效果演示

21f03af5d82d4095c581b22b34f730f7.gif

五彩斑斓的气球可以作为背景添加到视频中,效果很棒,氛围感一绝!

老生常谈啦,在用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个月,摸鱼学习交流群再次限时开放了。

4f1b6e4d426d56c6b1db82101b4cddce.png

Python技术交流群(技术交流、摸鱼、白嫖课程为主)又不定时开放了,感兴趣的朋友,可以在下方公号内回复:666,即可进入,一起 100 天计划

老规矩,酱友们还记得么,右下角的 “在看” 点一下,如果感觉文章内容不错的话,记得分享朋友圈让更多的人知道!

d201eaab4d494e4f0c92897c94347200.gif

【神秘礼包获取方式】
扫描下方二维码添加私人微信,再送一套精华电子书!,回复:电子书
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值