端午节粽子(python)

目录

前言

正文

 粽叶绘制

粽叶绳绘制

祝福语绘制

源代码

 总结


前言

今天端午节,然后昨天也学习一下绘图的相关知识,然后就想看一下能不能画一下,结果还是有点困难的,用CharAI生成简直一言难尽了。后面是找了一个改了一下。

端午安康,用python给你画盘粽子~啾啾_python画粽子代码_他们叫我技术总监的博客-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/qq_29061315/article/details/125092068

正文

改的时候还是遇到了几个问题的,首先对goto函数的理解错误了,他是按照屏幕的中间作为原点了,之前学其他语言的时候记得是按照屏幕的左上角作为原点。python的turtle库认识和学习(4)之海龟位置(turtle.goto())_lovepython1314的博客-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/weixin_40840880/article/details/102760871

 粽叶绘制

这个的话就是要体现立体感觉先画主面再画侧面,我感觉吧这个画图要么需要头脑特别清晰的思路,就是他移动到哪个位置了,角度是朝向哪边,要么就只能像我一样不断调试了,角度不对或者移动的距离不对,每次都要修改很久。

我这里的画笔颜色还是黑色,粽叶的颜色采用的纯绿色,如果画笔也是绿色的话画出来感觉不是很美观,体现不出来线条。正面就是可以用循环来写,但是侧面的角度不同就不能一起写了。这里要保存一个点,方便之后的画封装线。

# 画笔宽度
pensize(2)
# 画笔颜色
pencolor("black")
# 粽子大体的填充色
fillcolor("green")
#开始填充
begin_fill()
#绘制粽子的正面
for i in range(3):
    #forward,在当前位置方向移动一定的距离
    fd(200)
    #画圆弧
    circle(15, 120)
#绘制粽子的侧面
fd(200)
circle(15, 60)
fd(100)
circle(15, 90)
fd(173)
circle(1, 90)
#停止填充
end_fill()

#将海龟笔尖提起
penup()
fd(100)
#向右旋转60
right(60)
#向后移动105
back(105)
#表存当前的坐标点
a = pos()
pendown()

粽叶绳绘制

这里用的粽叶绳颜色是深卡其色,大家可以根据自己的审美来修改,可以直接网上找或者用RGB来细化,最后可以通过hideturtle()来隐藏箭头让他更加美观,在箭头调转的时候最好将画笔抬起以及填充关闭,penup()和end_fill()调整要位置和角度之后再打开,除非是你程序故意这样设置的,当然要更直观的看画笔的角度和位置还是要开启去调整的。

#画笔颜色
color("black")
#带子的颜色(深卡其色)
fillcolor("darkkhaki")
#绘制正面的带子
begin_fill()
fd(120)
goto(a)
#pen up调整位置
penup()
back(15)
left(90)
fd(20)
right(90)
pendown()
fd(150)
right(120)
fd(24)
right(60)
fd(120)
right(60)
fd(24)
end_fill()
#侧面的带子
begin_fill()
left(110)
fd(65)
left(100)
fd(24)
left(80)
fd(50)
#结束填充
end_fill()

#画下面的那条带子
#绘制正面的带子
#摆正他的方向
right(50)
#得到a点的坐标
x,y=a
#让a点坐标向右下靠
x=x+30
y=y-50
b=x,y
#提起画笔把初始的位置什么设置好(角度和准备),此时不能填充
penup()
fd(120)
goto(b)
back(15)
left(90)
fd(20)
right(90)
#配置好了之后就可以填充了
begin_fill()
pendown()
#先画下面的直线
fd(210)
right(120)
#右边的直线
fd(24)
right(60)
#上面的直线
fd(180)
right(60)
#左边的直线
fd(24)
end_fill()
#侧面的带子
begin_fill()
left(110)
fd(90)
left(100)
fd(24)
left(80)
fd(75)
#结束填充
end_fill()

# 隐藏turtle图形(箭头)
hideturtle()

祝福语绘制

这个就是goto之前要提起,不然就会留下沿途的痕迹,调用write函数输入祝福语以及字体的相关信息。

#输出祝福语
#将海龟笔尖提起
penup()
goto(-80,-160)
pendown()
write("端午安康",font=('楷体', 30, 'bold'))

最后要保留的界面的话还是要done的,不然就直接关闭了,调试也不好调试。

# 暂停程序,停止画笔绘制,但绘图窗体不关闭,直到用户关闭pythonTurtle图形化窗口为止
done()

源代码

from turtle import *
# 画粽子
#将海龟笔尖提起
penup()
#将海龟图形移动到画布上指定的位置(算是为了居中绘画吧)
goto(-100,-50)
#将海龟笔尖落下
pendown()

# 画笔宽度
pensize(2)
# 画笔颜色
pencolor("black")
# 粽子大体的填充色
fillcolor("green")
#开始填充
begin_fill()
#绘制粽子的正面
for i in range(3):
    #forward,在当前位置方向移动一定的距离
    fd(200)
    #画圆弧
    circle(15, 120)
#绘制粽子的侧面
fd(200)
circle(15, 60)
fd(100)
circle(15, 90)
fd(173)
circle(1, 90)
#停止填充
end_fill()

#将海龟笔尖提起
penup()
fd(100)
#向右旋转60
right(60)
#向后移动105
back(105)
#表存当前的坐标点
a = pos()
pendown()

#画笔颜色
color("black")
#带子的颜色(深卡其色)
fillcolor("darkkhaki")
#绘制正面的带子
begin_fill()
fd(120)
goto(a)
#pen up调整位置
penup()
back(15)
left(90)
fd(20)
right(90)
pendown()
fd(150)
right(120)
fd(24)
right(60)
fd(120)
right(60)
fd(24)
end_fill()
#侧面的带子
begin_fill()
left(110)
fd(65)
left(100)
fd(24)
left(80)
fd(50)
#结束填充
end_fill()

#画下面的那条带子
#绘制正面的带子
#摆正他的方向
right(50)
#得到a点的坐标
x,y=a
#让a点坐标向右下靠
x=x+30
y=y-50
b=x,y
#提起画笔把初始的位置什么设置好(角度和准备),此时不能填充
penup()
fd(120)
goto(b)
back(15)
left(90)
fd(20)
right(90)
#配置好了之后就可以填充了
begin_fill()
pendown()
#先画下面的直线
fd(210)
right(120)
#右边的直线
fd(24)
right(60)
#上面的直线
fd(180)
right(60)
#左边的直线
fd(24)
end_fill()
#侧面的带子
begin_fill()
left(110)
fd(90)
left(100)
fd(24)
left(80)
fd(75)
#结束填充
end_fill()

# 隐藏turtle图形(箭头)
hideturtle()

#输出祝福语
#将海龟笔尖提起
penup()
goto(-80,-160)
pendown()
write("端午安康",font=('楷体', 30, 'bold'))
# 暂停程序,停止画笔绘制,但绘图窗体不关闭,直到用户关闭pythonTurtle图形化窗口为止
done()

 总结

有点简陋,不过祝福是真心的:

愿你的心情像粽子一样饱满,事业和家庭像粽叶一样紧密相连,幸福美满!!!

平安喜乐

  • 56
    点赞
  • 89
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 27
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 27
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

封奚泽优

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

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

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

打赏作者

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

抵扣说明:

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

余额充值