圣诞节来了,怎能还没有圣诞树呢 快来为心爱的她送上专属的圣诞礼物叭~

圣诞节来了,怎能还没有圣诞树呢 快来为心爱的她送上专属的圣诞礼物叭~

📢📢📢📣📣📣
🌻🌻🌻Hello,大家好我叫是Dream呀,一个有趣的Python博主,小白一枚,多多关照😜😜😜
🏅🏅🏅CSDN Python领域新星创作者,大二在读,欢迎大家找我合作学习
💕 入门须知:这片乐园从不缺乏天才,努力才是你的最终入场券!🚀🚀🚀
💓 最后,愿我们都能在看不到的地方闪闪发光,一起加油进步🍺🍺🍺
🍉🍉🍉”一万次悲伤,依然会有Dream,我一直在最温暖的地方等你”,唱的就是我!哈哈哈~🌈🌈🌈
🌟🌟🌟✨✨✨

前言:本来是打算停更一段时间的,因为最近期末复习很忙,自己也有许多私事要处理,心挺乱挺烦的。最主要的原因还是感觉自己的文章能被大家关注喜欢,自己挺荣幸的,粉丝也是达到了1W+,所以说我想停下来一段时间,好好审视一下自己,以后应该出一些什么样的文章来分享给大家,重新再规划一下学习路线。停更的这一段时间里,有很多小伙伴陆陆续续给我发私信,说想看什么内容,让我出一期,我都一一答应了,但最近真的很乱很烦,但我保证寒假我一定会出的!

Python打造专属于你的圣诞树+落叶+雪花+背景音乐+浪漫弹窗 五合一版圣诞树

; 一、背景故事

圣诞节风波❤️❤️❤️

马上不就到圣诞节了嘛,我看到朋友圈里很多小伙伴再纷纷炫耀自己收到的专属圣诞树,也有小伙伴私信我,说还没有自己的圣诞树!!!

圣诞节来了,怎能还没有圣诞树呢 快来为心爱的她送上专属的圣诞礼物叭~
圣诞节来了,怎能还没有圣诞树呢 快来为心爱的她送上专属的圣诞礼物叭~
作为我的粉丝朋友们,我不允许大家还没有专属于自己的圣诞树!我要让大家收到最特别最美丽的圣诞树,于是…冒着…期末挂科…的风险…我重拾了自己失传已久的 海龟画图海龟画图全解–值得你一看! (这篇文章写了很久了,是一些海龟画图最基础的操作,不太了解的小伙伴们可以拿这篇文章来快速入门海龟画图!)
终于…经过…昨天…一个晚上…的艰苦…奋斗,我觉得我又行了!
从最底层开始,我一步一步完善代码设计出了: 圣诞树+落叶+雪花+背景音乐+浪漫弹窗 五合一版圣诞树🎄🎄🎄! 话不多说,先看效果:
圣诞节来了,怎能还没有圣诞树呢 快来为心爱的她送上专属的圣诞礼物叭~

圣诞节来了,怎能还没有圣诞树呢 快来为心爱的她送上专属的圣诞礼物叭~
🌈🌈🌈哎嘿嘿,是不是非常的nice呀! 看到这先别着急,为了我的期末成绩着想,是不是得先给我来个一键三连呀!!!
圣诞节来了,怎能还没有圣诞树呢 快来为心爱的她送上专属的圣诞礼物叭~

接下来让我们慢慢来聊,请大家前排就坐,爆米花自取哟(点赞+收藏相当于一份爆米花😜😜😜)

; 二、五合一版圣诞树制作过程

需要用到的模块:

import turtle as t
import random
import pygame
import threading
import time
import tkinter as tk

这是我们要用到的一些基础库,没有安装的小伙伴们可以安装一下,要求编译器是Python3的环境。基础操作还不会的小伙伴看这里:❤️Python入门这些你必须要知道!
我用的是Pycharm,对Pycharm不懂的小伙伴look这个:全网首发,一篇文章带你走进pycharm的世界

1.基础圣诞树

画主体树的部分看似有些麻烦,但只要你把其中的几个循环看明白了就行了,无非就是几个函数重复控制画笔移动!

t.screensize(bg='black')

def loving_heart(r):
    l = 2 * r
    t.left(45)
    t.forward(l)
    t.circle(r, 180)
    t.right(90)
    t.circle(r, 180)
    t.forward(l)

def tree(d, s):
    if d  0:
        return
    t.forward(s)
    tree(d - 1, s * .8)
    t.right(120)
    tree(d - 3, s * .5)
    t.right(120)
    tree(d - 3, s * .5)
    t.right(120)
    t.backward(s)

t.penup()
t.goto(0, 200)
t.pendown()
t.pencolor('red')
t.color('red')
t.begin_fill()
loving_heart(20)
t.end_fill()

n = 100
t.speed(0)

t.right(225)
t.color("dark green")
t.backward(n * 4.8)
tree(15, n)
t.backward(n / 5)

2.落叶效果

在这里我使用了random函数,通过判断条件控制了两种颜色,大家也可以加入更多的颜色进行绘制落叶:

 if random.randint(1, 2) == 1:
      t.color('tomato')
 else:
      t.color('wheat')

也可以使其变成不同的形状,也没必要全是圆形,时间问题我就没改,大家感兴趣可以再改一下,也可以使落叶在圣诞树上,不用全在圣诞树下: t.circle(4)


for i in range(200):
    a = 200 - 400 * random.random()
    b = 10 - 20 * random.random()
    t.speed(0)
    t.up()
    t.forward(b)
    t.left(90)
    t.forward(a)
    t.down()
    if random.randint(1, 2) == 1:
        t.color('tomato')
    else:
        t.color('wheat')
    t.circle(4)
    t.up()
    t.backward(a)
    t.right(90)
    t.backward(b)

3.雪花特效

这里我做了很详细的介绍,大家可以参考这个来具体看,还是很好看的:


def drawsnow():
    t.speed(0)
    t.ht()
    t.pensize(2)
    for i in range(200):
        t.pencolor("white")
        t.pu()
        t.setx(random.randint(-350, 350))
        t.sety(random.randint(-100, 350))
        t.pd()
        dens = 6
        snowsize = random.randint(1, 10)
        for j in range(dens):

            t.fd(int(snowsize))
            t.backward(int(snowsize))

            t.right(int(360 / dens))
drawsnow()

4.背景音乐

这里使用 Pygame模块中的mixer来控制音乐的播放,需要导入本地音乐路径,然后就可以啦!这样会使整个的绘制过程更加浪漫有趣!

file=r'薛之谦 - 迟迟.mp3'
pygame.mixer.init()
track = pygame.mixer.music.load(file)
pygame.mixer.music.play()

5.浪漫弹窗

这里使用了 tkinter模块来进行小弹窗的绘制,最后是用for循环来实现弹窗的重复性和随机性,这也是我觉得最大的创新之处吧!惊喜重重,满满心意与浪漫,哈哈哈。


def dow():
    window = tk.Tk()
    width = window.winfo_screenwidth()
    height = window.winfo_screenheight()
    a = random.randrange(0, width)
    b = random.randrange(0, height)
    window.title('圣诞节快乐')
    window.geometry("200x50" + "+" + str(a) + "+" + str(b))
    tk.Label(window,
             text='圣诞节快乐!',
             bg='pink',
             font=('..', 17),
             width=18, height=2
             ).pack()
    window.mainloop()

threads = []
for i in range(100):
    t = threading.Thread(target=dow)
    threads.append(t)
    time.sleep(0.01)
    threads[i].start()

6.署名制作

最后我又简单的加上了自己的署名,算是对自己产权的一种保护吧。虽然没啥用,你们也肯定会给我去掉,但我不管,这就是一种仪式感嗷!


t.color("red")
t.up()
t.goto(170,-200)
t.down()
t.write("Created:是Dream呀", font=("宋体", 18, "normal"))
t.ht()

t.hideturtle()

三、源码分享

源码来喽:

import turtle as t
import random
import pygame
import threading
import time
import tkinter as tk

file=r'薛之谦 - 迟迟.mp3'
pygame.mixer.init()
track = pygame.mixer.music.load(file)
pygame.mixer.music.play()

t.screensize(bg='black')

def loving_heart(r):
    l = 2 * r
    t.left(45)
    t.forward(l)
    t.circle(r, 180)
    t.right(90)
    t.circle(r, 180)
    t.forward(l)

def tree(d, s):
    if d  0:
        return
    t.forward(s)
    tree(d - 1, s * .8)
    t.right(120)
    tree(d - 3, s * .5)
    t.right(120)
    tree(d - 3, s * .5)
    t.right(120)
    t.backward(s)

t.penup()
t.goto(0, 200)
t.pendown()
t.pencolor('red')
t.color('red')
t.begin_fill()
loving_heart(20)
t.end_fill()

n = 100
t.speed(0)

t.right(225)
t.color("dark green")
t.backward(n * 4.8)
tree(15, n)
t.backward(n / 5)

for i in range(200):
    a = 200 - 400 * random.random()
    b = 10 - 20 * random.random()
    t.speed(0)
    t.up()
    t.forward(b)
    t.left(90)
    t.forward(a)
    t.down()
    if random.randint(1, 2) == 1:
        t.color('tomato')
    else:
        t.color('wheat')
    t.circle(4)
    t.up()
    t.backward(a)
    t.right(90)
    t.backward(b)

def drawsnow():
    t.speed(0)
    t.ht()
    t.pensize(2)
    for i in range(200):
        t.pencolor("white")
        t.pu()
        t.setx(random.randint(-350, 350))
        t.sety(random.randint(-100, 350))
        t.pd()
        dens = 6
        snowsize = random.randint(1, 10)
        for j in range(dens):

            t.fd(int(snowsize))
            t.backward(int(snowsize))

            t.right(int(360 / dens))
drawsnow()

t.color("red")
t.up()
t.goto(170,-200)
t.down()
t.write("Created:是Dream呀", font=("宋体", 18, "normal"))
t.ht()

t.hideturtle()

time.sleep(2)

def dow():
    window = tk.Tk()
    width = window.winfo_screenwidth()
    height = window.winfo_screenheight()
    a = random.randrange(0, width)
    b = random.randrange(0, height)
    window.title('圣诞节快乐')
    window.geometry("200x50" + "+" + str(a) + "+" + str(b))
    tk.Label(window,
             text='圣诞节快乐!',
             bg='pink',
             font=('..', 17),
             width=18, height=2
             ).pack()
    window.mainloop()

threads = []
for i in range(100):
    t = threading.Thread(target=dow)
    threads.append(t)
    time.sleep(0.01)
    threads[i].start()

四、🎄美好祝愿🎄

希望大家在圣诞节都可以和喜欢的人在一起,送上那棵专属于她or他的圣诞树🎄🎄🎄!天天开心,好好生活,我一直都在哟~💘💘💘(有任何问题的话,欢迎评论区或者私信我嗷,我都会看的!)

五、原工程文件分享

如果你实在是不懂Python,那就直接下载这个压缩包就可以把,一键运行即可,需要自取:
圣诞树表白源码+素材+拿去直接用

🏆往期文章—-好文推荐🏆

[Dream公开课]零基础玩转Python基础篇—-第一节:Python的自我介绍

🌲🌲🌲 好啦,这就是今天要分享给大家的全部内容了,我们下期再见!
❤️❤️❤️如果你喜欢的话,就不要吝惜你的一键三连了~

圣诞节来了,怎能还没有圣诞树呢 快来为心爱的她送上专属的圣诞礼物叭~
圣诞节来了,怎能还没有圣诞树呢 快来为心爱的她送上专属的圣诞礼物叭~

Original: https://blog.csdn.net/weixin_51390582/article/details/121959033
Author: 是Dream呀
Title: 圣诞节来了,怎能还没有圣诞树呢 快来为心爱的她送上专属的圣诞礼物叭~

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/778768/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • pygame3 图像

    屏幕上画矩形,圆,或是画点,画曲线只是制作图形的一种方式。有时候我们还想用从别处得来的图片显示在我们的程序中。 1、获取图片 my_ball = pygame.image.load…

    Python 2023年9月17日
    065
  • scrapy中各文件作用

    scrapy中各文件作用 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mOoXwzmp-1647176996199)(images\2019120…

    Python 2023年10月3日
    025
  • Pygame实现自定义的生命游戏

    仅是尝试,还有待提高(v0)。 主要目的:想了解如何交互,获取鼠标点击位置并进行相应操作。 此次生命游戏的规则:每一轮用户通过鼠标点击增加一个细胞;所有细胞向其八邻域中的一个分裂新…

    Python 2023年9月19日
    037
  • (Note)优化器Adam的学习率设置

    记录一下知乎看到的问题:Adam的学习率设置 常用的神经网络优化器Adam的自适应学习率并不是真正意义上的自适应。 从统计的角度看,Adam的自适应原理也是根据统计对梯度进行修正,…

    Python 2023年10月24日
    049
  • jmeter测试工具-性能测试基础

    测试基本概念及知识 一:测试基础知识(dos命令汇总) """ dos命令: &am…

    Python 2023年5月23日
    071
  • 使用Python+Flask开发桌面应用的新选择-flaskwebgui

    前言 之前分别用过了 eel, pywebview进行桌面应用开发, 但是都有不太理想的地方, eel没有对flask的原生支持, 而 pywebview虽然可以直接将flask的…

    Python 2023年8月13日
    058
  • AI带你省钱旅游!精准预测民宿房源价格!

    💡 作者:韩信子@ShowMeAI📘 数据分析实战系列:https://www.showmeai.tech/tutorials/40📘 机器学习实战系列:https://www.s…

    Python 2023年10月28日
    030
  • rest_framework_xml 解析xml成Python 字典格式数据对象

    rest_framework_xml 解析xml成Python 字典格式数据对象 原创 ch3nnn2022-07-18 17:41:40博主文章分类:Python ©著作权 文章…

    Python 2023年5月25日
    062
  • Python工具箱系列(八)

    前面我们提到过,有以下工具都可以开发Python代码: 直接使用Python解释器。运行Python就可以得到一个交互式命令行界面,可以简单的测试代码。作为Python入门,写代码…

    Python 2023年10月31日
    057
  • KeeWiDB的高性能修炼之路:架构篇

    数据也有冷热之分,你知道吗? 根据访问的频率的高低可将数据分为热数据和冷数据,访问频率高的则为热数据,低为冷数据。如果热、冷数据不区分,一并存储,显然不科学。将冷数据也存储在昂贵的…

    Python 2023年10月15日
    038
  • python爬虫基础小案例, scrapy框架,思路和经验你全都有。

    目录 一、scrapy介绍 二、爬取步骤 三、代码 1、创建爬虫项目 scrapy startproject 项目名字 注意: 项目名字不能出现中文,也不能以数字开头。 2、创建爬…

    Python 2023年10月1日
    056
  • 基于 Echarts + Python Flask 动态实时大屏( 附代码)

    目录 * – 一、确定需求方案 – 二、整体架构设计 – 三、编码实现 (关键代码) – 四、完整代码* 五、运行效果 1.动态实时…

    Python 2023年8月9日
    069
  • python 基于aiohttp的异步爬虫实战

    钢铁知识库,一个学习python爬虫、数据分析的知识库。人生苦短,快用python。 之前我们使用requests库爬取某个站点的时候,每发出一个请求,程序必须等待网站返回响应才能…

    Python 2023年6月11日
    079
  • python网络编程之黏包 struct 模块

    黏包现象 tcp协议在发送数据时,会出现黏包现象. (1)数据粘包是因为在客户端/服务器的发送端和接收端都会有一个数据缓冲区,缓冲区用来临时保存数据,默认空间都设置较大。在收发数据…

    Python 2023年6月10日
    046
  • Suspense组件

    先上官网:https://cn.vuejs.org/guide/built-ins/suspense.html 注意一下 <suspense></suspense…

    Python 2023年9月16日
    035
  • python3 安装 impyla

    pip3 install six bit_array bitarray pip3 install thriftpy==0.3.8 pure-sasl pip3 install th…

    Python 2023年6月15日
    069
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球