# 昵 称:XieXu
# 时 间: 2022/12/23/0023 20:33
# 一、导入几个必要的模块
import turtle as t
import random
import pygame
import threading
import time
import tkinter as tk
# 二、绘制树的基础部分
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)
# 三、绘制树叶飘落的效果
if random.randint(1, 2) == 1:
t.color('tomato')
else:
t.color('wheat')
# 绘制落叶
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() # 隐藏笔头,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()
# 五、绘制弹窗
# 弹窗制作
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()
# 六、绘制名字
# 写下署名
t.color("red") # 填充颜色
t.up() # 抬笔
t.goto(170,-200)
t.down() # 落笔
t.write("Created:是Dream呀", font=("宋体", 18, "normal"))
t.ht()
# t.done()
t.hideturtle()
没有合适的资源?快使用搜索试试~ 我知道了~
基于Python实现的圣诞树效果源代码(三种)
共4个文件
py:3个
zip:1个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 152 浏览量
2023-03-30
09:09:22
上传
评论
收藏 9KB ZIP 举报
温馨提示
这是基于Python实现的圣诞树效果源代码(三种),博客中已经记录。
资源推荐
资源详情
资源评论
收起资源包目录
基于Python实现的圣诞树效果源代码(三种).zip (4个子文件)
基于Python实现的圣诞树效果源代码(三种)
圣诞树.zip 4KB
圣诞树
圣诞树_02.py 4KB
圣诞树_03.py 3KB
圣诞树_01.py 1KB
共 4 条
- 1
资源评论
追光者♂
- 粉丝: 2w+
- 资源: 516
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功