前言
小伙伴们好,我是二哥(二师兄),端午节就要到了,提前祝各位假期愉快,端午安康!
二哥突发奇想,用Python画了几个粽子送给女友,由于色香味俱全,没想到她差点把我的电脑吃了,跪地直呼真香!
工具
绘图:Turtle
代码构建
根据二哥的分析,粽子的构成主要有两个部分(粽子+粽子结),我们分两步进行绘制即可。
绘制粽子
粽子的主要形状就是一个三角锥,我们绘制一个绿色的三角锥即可,二哥画的草图如下(画工请无视):
代码如下:
# 设置颜色及画笔属性 pensize(2) pencolor(0, 0, 0) fillcolor(4, 77, 19) # 绘制粽子 begin_fill() fd(200) circle(15, 120) fd(200) circle(15, 120) fd(200) circle(15, 120) end_fill() fillcolor(4, 77, 19) begin_fill() fd(200) circle(15, 60) fd(100) circle(15, 90) fd(173) circle(1, 150) end_fill() fd(205) circle(-15, 120) fd(197) circle(-15, 120) fd(200)
结果如下:
绘制粽子结
第二步就是绘制粽子结了,粽子结的颜色要和粽子区分开,传统的粽子大概应该是草黄色,草图如下:
代码如下:
color(60, 67, 0) fillcolor(85, 97, 9) begin_fill() fd(122) goto(a) left(120) fd(24) right(120) fd(150) right(120) fd(24) right(60) fd(124) end_fill() right(60) fd(24) begin_fill() left(110) fd(67) left(100) fd(24) left(80) fd(52) end_fill()
其他
除了绘制粽子和粽子结,我们还要时刻控制画笔的位置,最终写成函数就可以绘制多个粽子了。完整代码见下文。
完整代码
from turtle import * # 隐藏海龟 hideturtle() # 颜色模式 colormode(255) ''' 参数说明: pensize:画笔粗细 pencolor:画笔颜色 fillcolor:填充颜色 begin_fill:开始填充 fd:前进 circle:画圆 right:右转 end_fill():结束填充 ''' def Zongz(x, y): # 根据输入的坐标调整起点 penup() home() goto(x, y) pendown() # 设置颜色及画笔属性 pensize(2) pencolor(0, 0, 0) fillcolor(4, 77, 19) # 绘制粽子 begin_fill() fd(200) circle(15, 120) fd(200) circle(15, 120) fd(200) circle(15, 120) end_fill() fillcolor(4, 77, 19) begin_fill() fd(200) circle(15, 60) fd(100) circle(15, 90) fd(173) circle(1, 150) end_fill() fd(205) circle(-15, 120) fd(197) circle(-15, 120) fd(200) # 调整位置绘制粽子结 penup() circle(-12, 120) circle(-1, 60) fd(100) right(60) back(105) a = pos() pendown() # 绘制粽子结 color(60, 67, 0) fillcolor(85, 97, 9) begin_fill() fd(122) goto(a) left(120) fd(24) right(120) fd(150) right(120) fd(24) right(60) fd(124) end_fill() right(60) fd(24) begin_fill() left(110) fd(67) left(100) fd(24) left(80) fd(52) end_fill() # 回到远点(朝向东) penup() goto(0, 0) home() pendown() Zongz(50, 0) Zongz(-100, 0) Zongz(-250, 0) mainloop()
最终运行结果: