2021-12-17 用Python代码绘制带音乐的圣诞树
注,转自CSDN:
https://blog.csdn.net/weixin_51390582/article/details/121959033?utm_source=app&app_version=4.20.0&code=app_1562916241&uLinkId=usr1mkqgl919blen
源代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 | #导入需要用到的包,没有的话需要先安装 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.Turtle().screen.delay(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() # 隐藏笔头,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() # 写下署名 t.color( "red" ) # 填充颜色 t.up() # 抬笔 t.goto( 170 , - 200 ) t.down() # 落笔 t.write( "Created:是Dream呀" , font = ( "宋体" , 18 , "normal" )) t.ht() # t.done() 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() |
本文来自博客园,作者:{admin-xiaoli},转载请注明原文链接:{https://www.cnblogs.com/crackerroot}
分类:
Python
标签:
Python之绘制圣诞树
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架