中秋阴天看不见月亮只好用python写赏月工具
女神约我去赏月!我一看中秋节可能会下雨,立马用Python写了款赏月工具!本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考价值,需要的朋友可以参考下
一年中秋至 又见圆月时
导语
假设农历八月十五,程序员错过了今年的中秋圆月。
▼
程序员的苦只有他们寄几知道
bug,bug,bug,bug,bug,bug……
吃饭时在改bug,走路时在改bug,约会时在改bug,结婚时在改bug
就连中秋佳节也还!在!改!bug!
▼
不过做为一枚上知《边城》下知编程的程序员,没有什么可以难倒他
“不就是中秋的圆月亮吗?”三分钟以后…程序员自己用Python画了一个
Python版中秋圆月!甚至可以的话,我每天都可以赏月过中秋~
正文
环境安装:使用turtle绘制、游戏模块pygame模块照旧。
(1)首先绘制圆月。
1 2 3 4 5 6 7 8 | def drawMoon(): turtle.penup() #画笔拿起 turtle.goto( - 150 , 0 ) turtle.fillcolor(( 255 , 215 , 0 )) #圆月的颜色 turtle.pendown() #画笔放下 turtle.begin_fill() turtle.circle( 112 ) turtle.end_fill() #turtle.begin_fill() 到turtle.end_fill() 颜色填充 |
(2)然后绘制云层。
稍微有点儿复杂,因为云是飘动的,所以比月亮难一点。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | def drawCloud(): turtle.penup() turtle.goto( - 500 , 200 ) turtle.fillcolor(( 245 , 245 , 245 )) turtle.pencolor(( 255 , 255 , 255 )) turtle.pensize( 5 ) turtle.pendown() turtle.forward( 250 ) def cloud(mode = 'right' ): for i in range ( 90 ): turtle.pensize((i + 1 ) * 0.2 + 5 ) turtle.right( 1 ) if mode = = 'right' else turtle.left( 1 ) turtle.forward( 0.5 ) for i in range ( 90 ): turtle.pensize( 90 * 0.2 + 5 - 0.2 * (i + 1 )) turtle.right( 1 ) if mode = = 'right' else turtle.left( 1 ) turtle.forward( 0.5 ) cloud() turtle.forward( 100 ) cloud( 'left' ) turtle.forward( 600 ) |
(3)绘制山川。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | def drawMountain(): turtle.penup() turtle.goto( - 500 , - 250 ) turtle.pensize( 4 ) turtle.fillcolor(( 36 , 36 , 36 )) turtle.pencolor(( 31 , 28 , 24 )) turtle.pendown() turtle.begin_fill() turtle.left( 20 ) turtle.forward( 400 ) turtle.right( 45 ) turtle.forward( 200 ) turtle.left( 60 ) turtle.forward( 300 ) turtle.right( 70 ) turtle.forward( 300 ) turtle.goto( 500 , - 300 ) turtle.goto( - 500 , - 300 ) turtle.end_fill() |
(4)设置界面,进界面就有音乐播放。
1 2 3 4 5 6 7 8 9 10 | def initTurtle(): pygame.mixer.init() pygame.mixer.music.load( 'bgm.mp3' ) pygame.mixer.music.play( - 1 , 20.0 ) turtle.hideturtle() turtle.setup( 1000 , 600 ) turtle.title( '中秋赏月' ) turtle.colormode( 255 ) turtle.bgcolor(( 193 , 210 , 240 )) turtle.speed( 10 ) |
(5)绘制诗句。
1 2 3 4 5 6 7 8 9 10 11 12 13 | def writePoetry(): turtle.penup() turtle.goto( 400 , - 150 ) turtle.pencolor(( 250 , 240 , 230 )) # 诗句 potery = [ "\n明\n月\n几\n时\n有\n" , "把\n酒\n问\n青\n天\n" ] # 诗句位置(可自行设计添加), 最好2/4句五言诗 coordinates = [( 300 , - 150 ), ( 200 , - 150 ), ( 100 , - 150 )] for i, p in enumerate (potery): turtle.write(p, align = "center" , font = ( "STXingkai" , 50 , "bold" )) if (i + 1 ) ! = len (potery): time.sleep( 2 ) turtle.goto(coordinates[i]) |
效果图:
总结
中秋赏月,木木子就先带你们先赏为敬了哈~
原文链接:https://blog.csdn.net/weixin_55822277/article/details/120179765