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

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

前言

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

二哥突发奇想,用Python画了几个粽子送给女友,由于色香味俱全,没想到她差点把我的电脑吃了,跪地直呼真香!

工具

绘图:Turtle

代码构建

根据二哥的分析,粽子的构成主要有两个部分(粽子+粽子结),我们分两步进行绘制即可。

绘制粽子

粽子的主要形状就是一个三角锥,我们绘制一个绿色的三角锥即可,二哥画的草图如下(画工请无视):

image.png

代码如下:

# 设置颜色及画笔属性
    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)

结果如下:

26.png

绘制粽子结

第二步就是绘制粽子结了,粽子结的颜色要和粽子区分开,传统的粽子大概应该是草黄色,草图如下:

image.png

代码如下:

    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()

最终运行结果:

28.png


相关文章
|
7月前
|
监控 Python
使用Python编写的电脑上网时间控制软件:实现家长监管功能
在当今数字化时代,孩子们对互联网的依赖程度越来越高,但是过度使用互联网可能会对他们的健康和学业产生负面影响。为了帮助家长有效地监管孩子们的上网行为,我们开发了一款基于Python的电脑上网时间控制软件,具有家长监管功能。
249 1
|
监控 Linux iOS开发
电脑优盘监控的Python代码示例
电脑优盘监控的代码示例通常需要涉及操作系统的文件系统和USB设备监控。以下是一个基本的Python示例,用于检测USB设备的插入和拔出
573 0
|
2月前
|
测试技术 API Python
【10月更文挑战第1天】python知识点100篇系列(13)-几种方法让你的电脑一直在工作
【10月更文挑战第1天】 本文介绍了如何通过Python自动操作鼠标或键盘使电脑保持活跃状态,避免自动息屏。提供了三种方法:1) 使用PyAutoGUI,通过安装pip工具并执行`pip install pyautogui`安装,利用`moveRel()`方法定时移动鼠标;2) 使用Pymouse,通过`pip install pyuserinput`安装,采用`move()`方法移动鼠标绝对位置;3) 使用PyKeyboard,同样需安装pyuserinput,模拟键盘操作。文中推荐使用PyAutoGUI,因其功能丰富且文档详尽。
|
2月前
|
计算机视觉 Python
python利用pyqt5和opencv打开电脑摄像头并进行拍照
本项目使用Python的PyQt5和OpenCV库实现了一个简单的摄像头应用。用户可以通过界面按钮打开或关闭摄像头,并实时预览视频流。点击“拍照”按钮可以捕捉当前画面并保存为图片文件。该应用适用于简单的图像采集和处理任务。
114 0
python利用pyqt5和opencv打开电脑摄像头并进行拍照
|
2月前
|
Android开发 Swift iOS开发
python 基于电脑蓝牙连接获取手机的实时数据
python 基于电脑蓝牙连接获取手机的实时数据
63 0
|
3月前
|
监控 数据挖掘 Python
🔍解锁Python系统编程新姿势!文件系统操作与I/O管理,让你玩转电脑每一个角落
【9月更文挑战第11天】Python不仅在数据分析和Web开发中表现出色,其系统编程能力同样强大。本文通过实例详细介绍了Python如何高效地进行文件系统操作与I/O管理。利用`os`和`pathlib`模块,你可以轻松遍历、创建、删除和重命名文件及目录。通过示例代码,展示了如何递归遍历目录和高效读写大文件。此外,文章还介绍了使用`watchdog`库进行文件监控及利用`concurrent.futures`模块实现并发I/O操作的方法,帮助你构建更复杂的应用。无论简单读写还是高级操作,Python都能助你轻松管理电脑的每一个角落。
38 1
|
3月前
|
Python
python对电脑的操作,获取几核,获取操作系统,获取内存
python对电脑的操作,获取几核,获取操作系统,获取内存
|
7月前
|
数据采集 测试技术 Python
python——久看电脑惊坐起!我的赞和评论竟然是……
python——久看电脑惊坐起!我的赞和评论竟然是……
28 0
|
7月前
|
监控 测试技术 API
自动化测试工具与电脑桌面监控软件的集成:Selenium与Python的无缝整合
在当今数字化时代,软件质量保证是每个软件开发团队都必须面对的重要挑战之一。自动化测试工具和电脑桌面监控软件的结合,为开发团队提供了一种有效的方式来确保软件的稳定性和性能。本文将介绍如何利用Python编程语言中的Selenium库,与桌面监控软件进行无缝整合,以实现对应用程序的自动化测试和桌面监控。
287 5