圣诞节怎么能缺少圣诞树呢?Python+HTML打造专属于你的圣诞树

news2024/11/19 14:53:09

前言: 美酒一杯让人醉,温馨陪伴浪漫随;雪花片片惹人爱,烦恼忧伤全不见;字里行间藏真情,文短情深送心愿:圣诞佳节快来到,祝大家永远开心幸福!
Hello大家好,我是Dream。 圣诞节马上到了,一些朋友问我想送女朋友和男朋友们圣诞节礼物,但是也没想到啥好点子,作为一名程序员,圣诞节我们就应该送出专属于我们程序员的浪漫。作为我的粉丝朋友们,我不允许大家还没有专属于自己的圣诞树!于是我给大家准备了两款圣诞树,快来看看有没有你喜欢的吧~

本文目录:

  • 一、背景故事
    • 圣诞树需求
    • 源码分享
  • 二、HTML版圣诞树
  • 三、Python版圣诞树
    • 需要用到的模块:
    • 1.基础圣诞树
    • 2.落叶效果
    • 3.雪花特效
    • 4.背景音乐
    • 5.浪漫弹窗
    • 6.署名制作
  • 四、源码分享
  • 五、🎄美好祝愿🎄

一、背景故事

圣诞节是全家团聚、共进圣诞晚餐、互赠礼品的时刻。圣诞树是节日的必需之物,一般用小枞树或者松树,树枝上挂满装饰品、礼物、彩灯,树顶上要有一颗明亮的星,以指示道路。
雪花飘舞着祥和,钟声传递着喜悦,苹果注满了平安,糖果填满了甜蜜,颂歌洋溢着快乐,短信充满了我最真挚的祝福。圣诞节,愿大家快乐悠然,幸福安康!

圣诞树需求

马上不就到圣诞节了嘛,我看到朋友圈里很多小伙伴再纷纷炫耀自己收到的专属圣诞树,也有小伙伴私信我,说还没有自己的圣诞树!!!
在这里插入图片描述
作为我的粉丝朋友们,我不允许大家还没有专属于自己的圣诞树!我要让大家收到最特别最美丽的圣诞树,于是我给大家准备了两款圣诞树🎄:
HTML版动态圣诞树
+
Python版落叶+雪花+背景音乐+浪漫弹窗 五合一版圣诞树! 话不多说,先看效果:
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
🌈🌈🌈哎嘿嘿,是不是非常的nice呀!喜欢啊一款啊,我把源码准备好啦,大家自取就行了,快去给最爱的人送上圣诞祝福吧!

源码分享

所有源码均在此公众号内:关注此公众号,回复 圣诞树获取源码,快点击我吧:人生苦短我用Pythons

二、HTML版圣诞树

在这里插入图片描述
代码有些长,大家根据自己需要直接修改文字内容就好,把文件后缀改为.html就可以直接运行啦!
并且我在其中加入了轮番图,你可以按照自己的需求写上自己想对她说的话:
在这里插入图片描述
这里是程序代码:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
<html>
<head>
<title> 宝贝 圣诞节快乐!</title>
<meta charset="utf-8" >
<style>
body {
  margin: 0;
  background-image: url("http://all4desktop.com/data_images/1280%20x%20800/4227335-waiting-for-the-xmas.jpg");
  background-color: #111;
  background-position: 50% 50%;
  background-size: cover;

  display: flex;
  justify-content: center;
  align-items: center;
  height: 100vh;
  margin: 0;
}
其余代码太长放到源码里啦,大家需要自取

三、Python版圣诞树

需要用到的模块:

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.Turtle().screen.delay(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()  # 隐藏笔头,ht=hideturtle
    t.pensize(2)  # 定义笔头大小
    for i in range(200):  # 画多少雪花
        t.pencolor("white")  # 定义画笔颜色为白色,其实就是雪花为白色
        t.pu()  # 提笔,pu=penup
        t.setx(random.randint(-350, 350))  # 定义x坐标,随机从-350到350之间选择
        t.sety(random.randint(-100, 350))  # 定义y坐标,注意雪花一般在地上不会落下,所以不会从太小的纵座轴开始
        t.pd()  # 落笔,pd=pendown
        dens = 6  # 雪花瓣数设为6
        snowsize = random.randint(1, 10)  # 定义雪花大小
        for j in range(dens):  # 就是6,那就是画5次,也就是一个雪花五角星
            # t.forward(int(snowsize))  #int()取整数
            t.fd(int(snowsize))
            t.backward(int(snowsize))
            # t.bd(int(snowsize))  #注意没有bd=backward,但有fd=forward,小bug
            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.done()
t.hideturtle()

四、源码分享

源码来喽:
所有源码均在此公众号内:关注此公众号,回复 圣诞树获取源码,快点击我吧:人生苦短我用Pythons

五、🎄美好祝愿🎄

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

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

最后,有任何问题,欢迎关注下面的公众号,获取第一时间消息、作者联系方式及每周抽奖等多重好礼! ↓↓↓

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/106831.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

非零基础自学Golang 第14章 反射 14.2 基本用法 14.2.1 获取类型信息

非零基础自学Golang 文章目录非零基础自学Golang第14章 反射14.2 基本用法14.2.1 获取类型信息第14章 反射 14.2 基本用法 在使用反射时&#xff0c;我们会经常使用到反射的种类&#xff08;Kind&#xff09;&#xff0c;reflect.Kind在Go语言reflect包中的定义如下&#xff…

认知水平越低的人,越喜欢回复“收到”

前几天后台有位粉丝留言&#xff1a; “有一次回复’收到’&#xff0c;竟被领导痛批一顿&#xff01; 领导什么活都让我干&#xff0c;找资料、填表格、开会&#xff0c;虽然明知忙不过来&#xff0c;内心也不乐意做个打杂工&#xff0c;但嘴巴却只能缓缓吐出‘收到’两个字……

设计模式之中介者模式

Mediator design pattern 中介者模式的概念、中介者模式的结构、中介者模式的优缺点、中介者模式的使用场景、中介者模式的实现示例、中介者模式的源码分析 1、中介者模式的概念 中介者模式&#xff0c;又称调停模式&#xff0c;即定义一个中介者来封装原有多个对象之间的依赖…

SpringBoot中Redis使用之jedis

目录 pom.xml中导入坐标 application.yml添加配置 lettcus与jedis区别 本人springboot版本2.7.6&#xff0c;redis版本5.0.14.1亲测可用 pom.xml中导入坐标 <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId&…

大学生自学Python去面试,月薪为何如此少?问题究竟出在哪?

市场上需要的Python人员非常多&#xff0c;而且按照现在的势头&#xff0c;以后会需要更多的Python开发人员&#xff0c;理由是以后每个人公司都会有自己的网站&#xff0c;有自己的开发部&#xff0c;对于用户体验看的非常重要。所以Python程序员就会很吃香。随时时间的推移&a…

62354-43-2,标记肽vLK-对硝基苯胺

很多蛋白在细胞中非常容易被降解&#xff0c;或被标记&#xff0c;进而被选择性地破坏。但含有部分D型氨基酸的多肽则显示了很强的抵抗蛋白酶降解能力。 纤溶酶和微纤溶酶的底物。微纤溶蛋白水解D-VLK-pNA的Km为0.361 /- 0.017 mM, kcat为40.3 /- 3.3 s&#xff0c;而原生纤溶蛋…

非零基础自学Golang 第12章 接口与类型 12.2 接口的创建与实现 12.2.2 接口赋值

非零基础自学Golang 文章目录非零基础自学Golang第12章 接口与类型12.2 接口的创建与实现12.2.2 接口赋值第12章 接口与类型 12.2 接口的创建与实现 12.2.2 接口赋值 如果用户自定义的类型实现了某个接口类型所声明的一组方法&#xff0c;那么这个用户定义的类型的值就可以赋…

2021遥感应用组三等奖:基于PolSAR和高光谱遥感的黄河口湿地协同分类研究

作品介绍 一、作品概述 受人类活动和气候变化的影响,滨海湿地正经历着显著的变化。滨海湿地生态系统的监测具有重要的现实意义。同时,随着卫星遥感技术的快速发展,可以利用高空间分辨率、高光谱分辨率和高时间分辨率的多源数据对滨海湿地进行高精度分类。 本作品利用珠海1…

磨金石教育摄影技能干货分享|优秀手机摄影作品欣赏

在摄影中&#xff0c;动物摄影并不好拍&#xff0c;因为动物的姿态&#xff0c;所处的环境都不是人所能控制。所以需要摄影师们提早调整好参数&#xff0c;耐心的等待和观察。而且要反复多拍&#xff0c;才能得到心仪的照片。 这些还只是普通的动物摄影&#xff0c;还有难度更高…

sg90舵机基本认知

什么是舵机&#xff1a; 如下图所示&#xff0c;最便宜的舵机sg90&#xff0c;常用三根或者四根接线&#xff0c;黄色为PWM信号控制 用处&#xff1a;垃圾桶项目开盖用、智能小车的全比例转向、摄像头云台、机械臂等 常见的有0-90、0-180、0-360 怎末控制电机&#xff1f; …

硬件设备运行小程序,FinClip来帮忙

如今小程序技术日趋成熟&#xff0c;但大多小程序的运行都依赖于微信、百度、支付宝、今日头条等各大巨头&#xff0c;使得小程序的运营十分受限。并且&#xff0c;企业也更希望能实现“一次开发&#xff0c;多端运行”。因此&#xff0c;今天就来跟大家分享一下离开各大巨头&a…

20款前端特效动画及源码

最近优化项目时看到一些实用的特效 感觉还不错 下面就分享给大家 代码量过长的我就不展示了 可以去在这里资源站源码部分预览下载 1.Loading加载动画 在canvas画布上&#xff0c;我们动态绘制许多多边形&#xff0c;这些多边形伴随着颜色的随机变化和旋转&#xff0c;形成了奇…

KingbaseES Clusterware 高可用案例之---构建iSCSI共享存储

案例说明&#xff1a; 在KingbaseES Clusterware高可用的架构中&#xff0c;集群节点需要访问共享的存储设备&#xff0c;可以使用FC SAN、iscsi SAN、NAS等存储设备。本案例详细描述了&#xff0c;在Linux系统下构建 iscsi存储服务器及客户端访问的过程&#xff0c;为部署King…

8Manage SRM电子采购软件为企业带来采购优势

在如今各行行业竞争激烈的环境中&#xff0c;企业想要从中脱颖而出&#xff0c;利用现代化电子采购软件来建立优势是必不可少的。采用电子采购软件的优势越来越明显&#xff0c;其许多用途也越来越为人所知。企业使用电子采购的主要原因是为了控制强大的库存、减少采购重复和改…

GNU编译器常见伪操作

伪操作不会生成机器码&#xff0c;只是在编译阶段告诉编译器怎么做。类似于C语言中的 #if、#define 等带“#”的&#xff0c;#if 告诉编译器哪段不需要被编译&#xff0c;#define 告诉编译器哪些宏需要替换。 不同编译器&#xff0c;伪操作的语法不一样&#xff0c;这里主要介…

python帮我省下了这笔冤枉钱

背景 今天不得不说一说我这个电脑的事情。我这个电脑是2年前买的&#xff0c;屏幕非常大&#xff0c;是16寸的。 基本上没什么缺点&#xff0c;就是每隔一年&#xff0c;就要处理一下储存问题。 为什么呢&#xff0c;因为我的这台电脑的储存是512G的。所以不是太大。 但是今天…

【小学信息技术教资面试】《英文汉字巧切换》教案

题目&#xff1a;英文汉字巧切换内容&#xff1a; 基本要求&#xff1a; &#xff08;1&#xff09; 请在10分钟内完成试讲。 &#xff08;2&#xff09; 灵活切换汉字和英文字符。 &#xff08;3&#xff09; 试讲过程中涉及操作&#xff0c;进行演示即可。 《英文汉字巧切换…

如何准备考pmp?

我考的是旧考纲&#xff0c;5A 通过的&#xff0c;备考经验大家可以参考下&#xff0c;取长补短~ 一、复习计划的制定 根据之前在培训班共同奋斗的小伙伴学习时间统计&#xff0c;平均每天的学习时间是在 3-4 小时左右&#xff0c;基本上是白天 1 小时晚上 3 小时左右&#xf…

MySQL (二)------MySQL的使用、SQL的介绍

1.1 MySQL服务的启动 “我的电脑/计算机”-->右键-->“管理”-->“服务”-->启动和关闭MySQL服务 “开始菜单”-->“控制面板”-->“管理工具”-->“服务”-->启动和关闭MySQL “任务管理器”-->“服务”-->启动和关闭MySQL 或者 以管理员…

SQL练习题之求每个部门工资最高的人

冬至&#xff0c;又称日南至、冬节、亚岁。 文章目录前言一、题目二、表数据三、解答方法四、延伸思考题外话前言 分享自己做SQL练习时遇到的经典题目&#xff0c;供各位小伙伴参考。 一、题目 现有员工表employee&#xff0c;求每个部门工资最高的前五个员工的 id, name, de…