★文末福利★
★赠送1本新书★
★《大数据技术实战》★
中秋节马上就要到啦
各位小伙伴是不是
已经按捺不住激动的心情
心情早已飞到家里/旅游目的地
(此条屏蔽领导)
在写这篇文章之前
小编在网上
已经看到了许多关于
中秋节的各种段子和诗句
看到一些什么“中秋”、“酒”
之类的字眼
小编想:
这不是“单押”“双押”么
大概古代和现代的诗人
是最早的嘻哈歌手吧
而所谓的打油诗
就是freestyle吧
这里就教大家
作中秋flow一首:
明月几时有
今天喝啤酒
遥望月宫兔
怎么像条狗
然鹅中秋flow需要有个背景,这里为了符合中秋节阖家欢乐的范围,我们选择了浓浓的中老年表情包风:
Python中有一个叫做turtle的内置模块,俗称海龟绘图,它基于tkinter模块打造,具备一些简单的绘图功能。虽说turtle很难绘制出非常复杂的效果,不过很适合用来画简(biao)笔(qing)画(bao)。
1).绘图步骤
建立画布并设置背景色,然后依次绘制圆月、白云、山脉和文字。关于turtle的使用非常简单,有疑问可以参考官方文档( https://docs.python.org/3/library/turtle.html),为了便于理解,这里列出常用的几种方法:
建立画布:定义一个初始化函数,设置图幅、背景色及绘图速度。
月亮:定位起点,指定半径,绘制圆形并填充颜色。
白云:设置线宽和颜色,绘制直线;圆弧部分稍微复杂一点,要随着角度变化不断改变线宽——前90°逐步增加线 宽、后90°逐步减小线宽,即可得到图中效果。
山脉:依据形状绘制一个封闭的多边形,然后填充颜色。
文字:turtle模块中的wrtie()函数可直接在图中写入文字,支持自定义字体和字号。
2).源码步骤
首先引入turtle 和 time 模块:
import turtle
import time
定义一个背景颜色:
BC = 'DodgerBlue4'
之后开始画月亮,就是一个圆然后填充为黄色:
def draw_moon():
turtle.pencolor(BC)
turtle.fillcolor('Gold')
turtle.penup()
turtle.goto(-150, 0)
turtle.pendown()
turtle.begin_fill()
turtle.circle(110)
turtle.end_fill()
将我们的“中秋flow”以文字的形式绘制上去:
def draw_words():
turtle.penup()
turtle.pencolor('Yellow')
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"))
利用几条折线画出山脉:
def draw_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()
之后是云彩的运行轨迹:
def draw_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)
for i in range(30):
psize += disize
turtle.pensize(psize)
turtle.right(angle)
turtle.forward(step)
for i in range(30):
psize -= disize
turtle.pensize(psize)
turtle.right(angle)
turtle.forward(step)
turtle.forward(100)
for i in range(30):
psize += disize
turtle.pensize(psize)
turtle.left(angle)
turtle.forward(step)
for i in range(30):
psize -= disize
turtle.pensize(psize)
turtle.left(angle)
turtle.forward(step)
turtle.forward(200)
最后写main方法,整合所有的画笔,完整的中秋freestyle就完成啦。
def draw_init():
turtle.hideturtle()
turtle.setup(1000, 600)
turtle.bgcolor(BC)
turtle.speed(8) # 设置画笔速度为8
def main():
draw_init()
draw_moon()
draw_cloud()
draw_mountain()
draw_words()
turtle.exitonclick() # 点击才关闭画画窗口
if __name__ == '__main__':
main()
为了回馈广大粉丝,我们设置了抽奖活动
10月3日晚10:08分开奖
奖品为数据分析相关书籍×2
奖品链接
这个才是抽奖链接
最后祝大家节日快乐鸭!
好文章,我 在看❤