新年祝福

  • 1、引言
  • 2、代码示例
  • 2.1 思路
  • 2.2 介绍
  • 2.2.1 画布
  • 2.2.2 用法
  • 2.3 实例
  • 3、总结

 

1、引言

小屌丝:鱼哥, 这2023年马上就结束了, 是不是要表示表示。

小鱼:我也在思考这个事情。

小屌丝:这还需要思考?

小鱼:那可不,毕竟马上新年了,我不能草率啊。

小屌丝:那你准备怎么表示,表示多少,去哪表示啊?

小鱼:在C站一篇博文。

小屌丝:…

小鱼:不然呢,我还要写几篇啊。

小屌丝:…

小鱼:这个咋样。

小屌丝:…

小鱼:我想好了,写一个新年祝福视频。小屌丝:… 这压力给到我了。小鱼: 嘿嘿~

2、代码示例

2.1 思路

其实这篇的思路,跟这篇《Python3,10行代码,写一个气球运行小游戏,再也不无聊了。》的思路差不多。 这里就不在赘述,如果不太了解,那直接跳转到这一篇,查看即可。

2.2 介绍

2.2.1 画布

1、画布的高宽及颜色: turtle.screensize(canvwidth=None, canvheight=None, bg=None),

  • canvwidth=None:宽
  • canvheight=None:高
  • bg=None: 背景色

2、画布像素及位置: turtle.setup(width=0.5, height=0.75, startx=None, starty=None),

  • width=“整数”,像素 ;width=“小数”,占据电脑屏幕比例
  • height=“整数”,像素 ;height=“小数”,占据电脑屏幕比例
  • startx, starty :窗口坐标位置

2.2.2 用法

命令

用法

turtle.forward(distance)

向当前画笔⽅向移动distance像素长度

turtle.backward(distance)

向当前画笔相反⽅向移动distance像素长度

turtle.right(degree)

顺时针移动degree°

turtle.left(degree)

逆时针移动degree°

turtle.pendown()

移动时绘制图形,缺省时也为绘制

turtle.goto(x,y)

将画笔移动到坐标为x,y的位置

turtle.penup()

提起笔移动,不绘制图形,⽤于另起⼀个地⽅绘制

turtle.circle()

画圆,半径为正(负),表⽰圆⼼在画笔的左边(右边)画圆

setx( )

将当前x轴移动到指定位置

sety( )

将当前y轴移动到指定位置

setheading(angle)

设置当前朝向为angle⾓度

home()

设置当前画笔位置为原点,朝向东。

dot( r )

绘制⼀个指定直径和颜⾊的圆点

学习了turtle的基本用法,接下来,我们就要实践了。

2.3 实例

# -*- coding:utf-8 -*-
# @Time   : 2023-12-17
# @Author : Carl_DJ

'''
实现功能:
    使用turtle绘制五彩气球,并写上新年祝福语
'''


import turtle as tu
import random as ra
import math

#设置画板大小
tu.setup(0.5,0.5)
t = tu.Pen()
#设置气球颜色
colors = ['red','orange','yellow','blue','green','pink','lime']

class Balloon():
    #气球基本设置
    def __init__(self):
        self.r = ra.randint(12,21) #气球的半径
        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 Balloon_move(self):
        if self.y <= 500:     # 气球在画布中
            self.y += self.speed  #气球上下移动速度
            self.x += self.speed * math.sin(self.f)  #气球左右移动速度
            self.f += 0.1
    #画气球函数,turtle
    def Balloon_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)
#保存所有气球
Balloons = []
for i in range(100):
    Balloons.append(Balloon())
tu.bgcolor('black')
while True:    #气球开始漂浮
    tu.tracer(0)
    t.clear()
    for i in range(100):  #设置气球数量
        Balloons[i].Balloon_move()
        Balloons[i].Balloon_draw()
    # 写祝福语
    tu.penup()
    tu.goto(-250,20)
    tu.pendown()
    tu.color('orange')
    tu.write("新年快乐",font=("黑体",80,"italic"))  #italic :斜体
    # tu.write("祝你快乐每一天!", font=("黑体", 80, "italic"))  # "italic"表示斜体
    tu.hideturtle()
    tu.update()
tu.mainloop()

运行结果

 

 

新年祝福+气球

 

3、总结

看到这里,今天的分享差不多就该结束了。 2023年,也该告一段落了。 新的一年,我们依然要不忘初心,砥砺前行。

关于 turtle 的用法, 也可以参考小鱼的这篇博客

  • Python3,区区几行代码,turtle替我实现了我多年的绘画梦。

关于气球绘画,可以参考小鱼的这篇博客:

  • Python3,10行代码,写一个气球运行小游戏,再也不无聊了

我是小鱼

  • 阿里云 专家博主
  • 51CTO博客专家
  • 51认证讲师等
  • 认证金牌面试官
  • 职场面试培训、职业规划师
  • 多个国内主流技术社区的认证专家博主
  • 多款主流产品(阿里云等)测评一、二等奖获得者

关注小鱼,带你学习更多更专业更前言的人工智能相关技术。