Advertisement

python绘制月亮_用Python写一个嫦娥奔月,中秋快乐

阅读量:

原标题:用Python写一个嫦娥奔月,中秋快乐

月是故乡明,每到中秋佳节,很多在外打工的码农因为工作不一定能回家团圆。今时今日不知有多少人为了生计、为了事业、为了理想远走他乡,在一座陌生的城市中寻求一席之地,值此中秋佳节来临之际,谨以python作图一幅,赠与外出打拼、求学,工作的小伙伴们。

1.先上视频,祝大家中秋快乐

Python中有一个叫做turtle的内置模块,俗称海龟绘图,它基于tkinter模块打造,具备一些简单的绘图功能。虽说turtle很难绘制出亮眼的效果,不过用来绘制一些简笔画还是非常有意思的。

2.用Python画中秋图

1).绘图步骤

建立画布并设置背景色,然后依次绘制圆月、白云、山脉和文字。关于turtle的使用非常简单,有疑问可以参考官方文档(https://docs.python.org/3/library/turtle.html),为了便于理解,这里列出常用的几种方法:
f77e503177e4498d9b6134850eaa1110.jpeg

建立画布:定义一个初始化函数,设置图幅、背景色及绘图速度。

月亮:定位起点,指定半径,绘制圆形并填充颜色。

白云:设置线宽和颜色,绘制直线;圆弧部分稍微复杂一点,要随着角度变化不断改变线宽——前90°逐步增加线 宽、后90°逐步减小线宽,即可得到图中效果。

山脉:依据形状绘制一个封闭的多边形,然后填充颜色。

文字:turtle模块中的wrtie()函数可直接在图中写入文字,支持自定义字体和字号。

2).程序源码

这个程序的逻辑非常简单,这里就不一一说明了,直接上源码:

-- coding: utf-8 --

importturtle

importtime

BC = 'DodgerBlue4'

defdraw_moon():

turtle.pencolor(BC)

turtle.fillcolor( 'Gold')

turtle.penup()

turtle.goto( -150, 0)

turtle.pendown()

turtle.begin_fill()

turtle.circle( 110)

turtle.end_fill()

defdraw_words():

turtle.penup()

turtle.pencolor( 'Yellow1')

turtle.goto( 400, -150)

turtle.write( "明n月n出n天n山n", align= "center", font=( "STXingkai", 50, "bold")) time.sleep( 1)

turtle.goto( 300, -150)

turtle.write( "苍n茫n云n海n间n", align= "center", font=( "STXingkai", 50, "bold")) time.sleep( 1)

turtle.goto( 200, -150)

turtle.write( "长n风n几n万n里n", align= "center", font=( "STXingkai", 50, "bold")) time.sleep( 1)

turtle.goto( 100, -150)

turtle.write( "吹n度n玉n门n关n", align= "center", font=( "STXingkai", 50, "bold"))

defdraw_mountain():

turtle.fillcolor( 'grey21')

turtle.pencolor( 'grey31')

turtle.pensize( 4)

turtle.penup()

turtle.goto( -500, -250)

turtle.begin_fill()

turtle.pendown()

turtle.left( 15)

turtle.forward( 400)

turtle.right( 30)

turtle.forward( 200)

turtle.left( 40)

turtle.forward( 300)

turtle.right( 50)

turtle.forward( 300)

turtle.goto( 500, -300)

turtle.goto( -500, -300)

turtle.end_fill()

defdraw_cloud():

step = 1.5# 画弧时的步长

angle = 3# 每次改变的角度

disize = 0.6# 每次增加或减少的线宽 psize = 5 # 初始线宽 turtle.pencolor('WhiteSmoke') turtle.pencolor('Gainsboro') turtle.pensize(psize) turtle.penup()

turtle.goto( -500, 200) turtle.pendown() turtle.forward( 250)

fori inrange( 30):

psize += disize

turtle.pensize(psize)

turtle.right(angle)

turtle.forward(step)

fori inrange( 30):

psize -= disize

turtle.pensize(psize)

turtle.right(angle)

turtle.forward(step)

turtle.forward( 100)

fori inrange( 30):

psize += disize

turtle.pensize(psize)

turtle.left(angle)

turtle.forward(step)

fori inrange( 30):

psize -= disize

turtle.pensize(psize)

turtle.left(angle)

turtle.forward(step)

turtle.forward( 600)

defdraw_init():

turtle.setup( 1000, 600) turtle.bgcolor(BC) turtle.speed( 8) # 设置画笔速度为8

defmain():

draw_init()

draw_moon()

draw_cloud()

draw_mountain()

draw_words()

turtle.exitonclick() #点击才关闭画画窗口

if__name__ == 'main':

main()

本来这个视频本来应该是昨天发布的,因为休假外出,没有来得及编辑,非常抱歉!但是Python真的是非常好玩,简单易学,功能强大,一起来玩Python吧!

Python就是这么有趣好玩

需要本篇源码的同学,麻烦扫下面的二维码找小助手。返回搜狐,查看更多

责任编辑:

全部评论 (0)

还没有任何评论哟~