真香!端午节到来,我用Python画了几个粽子送给女票,女票差点吃了我的电脑...

前言

小伙伴们好,我是二哥(二师兄),端午节就要到了,提前祝各位假期愉快,端午安康!

二哥突发奇想,用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()

最终运行结果:

 

评论 50
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

二哥不像程序员

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值