端午节粽子(python)

目录

前言

正文

 粽叶绘制

粽叶绳绘制

祝福语绘制

源代码

 总结


前言

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

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

正文

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

 总结

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

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

平安喜乐

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/31583.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【剑指offer刷题记录 java版】数组双指针 之 其它题目

本系列文章记录labuladong的算法小抄中剑指offer题目 【剑指offer刷题记录 java版】数组双指针 之 其它题目 剑指 Offer II 018. 有效的回⽂剑指 Offer 58 - I. 翻转单词顺序剑指 Offer 21. 调整数组顺序使奇数位于偶数前⾯剑指 Offer 57. 和为s的两个数字剑指 Offer II 007. 数…

STM32单片机LED显示屏驱动原理与实现

STM32单片机驱动LED显示屏的原理与实现方法与Arduino类似,但涉及到的具体硬件资源和库函数可能会有所不同。下面是一个详细的介绍: 原理: STM32单片机驱动LED显示屏的原理是通过控制GPIO引脚的电平状态来控制LED的亮灭。通过设置引脚的输出电…

Mybatis源码分析_Mapper接口是如何实例化的 (2)

我们在使用Springmybatis的时候,经常都是直接写一个接口和一个对应的 ***Mapper.xml文件,然后业务代码就可以直接注入这个接口了。它是如何做到的呢? 接口: xml 想搞清楚这个问题,那还是要从Mybatis底层源码进行分析的…

轻量级的深度学习框架Tinygrad

Tinygrad是一个轻量级的深度学习库,它提供了一种简化和直观的方法来理解和实现神经网络。在本文中,我们将探讨Tinygrad及其主要功能,以及它如何成为那些开始深度学习之旅的人的有价值的工具。 什么是Tinygrad? Tinygrad是一个开源的深度学习…

Redis 通用命令

通用命令介绍 Redis 通用命令是一些 Redis 下可以作用在常用数据结构上的常用命令和一些基础的命令,比如删除键、对键进行改名、判断键是否存在等。简单说,就是 keys 分类的命令,如下图。 上图中圈中的部分,就是所谓的通用的命令…

【C语言初阶】带你轻松玩转所有常用操作符(1)

君兮_的个人主页 勤时当勉励 岁月不待人 C/C 游戏开发 Hello,这里是君兮_,最近要准备期末复习了,可能更新的就不会那么频繁了,下个星期回复正常更新。 操作符详解1 前言一.操作符的分类二.算数操作符三.移位操作符1.二进制表示的三种形式2.…

matlab实现语音信号的频域分析及应用

1.语音信号本质上是非平稳信号。但我们可以假设语音信号在一个短时间内是平稳的,这样我们用稳态分析方法处理非平稳信号。应用在傅立叶分析就是短时傅立叶变换。 语音的频域分析:包括语音信号的频谱、功率谱、倒频谱、频谱包络等. 常用频域分析方法&am…

mySql和VSC++

确认主机服务里的mysql服务已打开 使用组合键“winR”运行“services.msc”,进入本地服务窗口; 2.进入本地服务窗口后,在右侧服务列表中,查找到“ mysql ”服务选项; 3.查找到mysql服务选项后,双击打开mysq…

linux安装anaconda

linux安装anaconda 1、下载anaconda: Conda 是一个强大的包管理器和环境管理器,您可以在 Windows 的 Anaconda Prompt 或 macOS 或 Linux 的终端窗口中与命令行命令一起使用。 换句话说,我把Conda理解为前端的npm或yarn,后端的…

二进制部署k8集群(上)搭建单机matser和etcd集群

1. 单机matser预部署设计 组件部署: 2.操作系统初始化配置 注意:该操作在所有node节点上进行,为k8s集群提供适合的初始化部署环境 #关闭防火墙 systemctl stop firewalld systemctl disable firewalld iptables -F && iptables -t n…

Java-三种基本控制结构及相关面试题

文章目录 前言一、 顺序控制结构1.1 概念1.2 代码1.3 NS图中体现 二、分支控制结构2.1 概念2.2 if语句2.3 switch语句2.4 NS图中的体现 三、循环控制结构3.1 概念3.2 for循环3.3 while循环3.4 do-while循环3.5 增强 for 循环NS图中的体现 四、相关面试题什么是控制流语句&#…

从零开始:如何用Python建立你的第一个人工智能模型

1. 摘要: 在这篇文章中,我们将介绍如何从零开始使用Python建立你的第一个人工智能模型。无论你是刚接触编程的新手,还是有经验的开发者想进一步探索人工智能领域,这篇文章都将为你提供清晰、详细的指南。我们将一步步探索数据预处…

macOS Monterey 12.6.7 (21G651) Boot ISO 原版可引导镜像

macOS Monterey 12.6.7 (21G651) Boot ISO 原版可引导镜像 本站下载的 macOS 软件包,既可以拖拽到 Applications(应用程序)下直接安装,也可以制作启动 U 盘安装,或者在虚拟机中启动安装。另外也支持在 Windows 和 Lin…

2023年大学计算机专业实习心得14篇

2023年大学计算机专业实习心得精选篇1 20__年已然向我们挥手告别而去了。在20__年初之际,让我们对过去一年的工作做个总结。忙碌的一年里,在领导及各位同事的帮助下,我顺利的完成了20__年的工作。为了今后更好的工作,总结经验&…

《Java黑皮书基础篇第10版》 第17章【笔记】

第十七章 二进制I/O 17.1 引言 文件可以不严谨的分类为文本文件和二进制文件。文本文件指的是可以用文件编辑器进行查看和修改的,二进制文件则不可以使用文本编辑器查看和修改。 例如,Test.java文件储存在文本文件中,因此可以用文本编辑器…

Web安全测试中常见逻辑漏洞解析(实战篇)

前言: 越权漏洞是比较常见的漏洞类型,越权漏洞可以理解为,一个正常的用户A通常只能够对自己的一些信息进行增删改查,但是由于程序员的一时疏忽,对信息进行增删改查的时候没有进行一个判断,判断所需要操作的…

leetcode188. 买卖股票的最佳时机 IV.动态规划-java

买卖股票的最佳时机 IV leetcode188. 买卖股票的最佳时机 IV题目描述 动态规划代码演示 动态规划专题 leetcode188. 买卖股票的最佳时机 IV 来源:力扣(LeetCode) 链接:https://leetcode.cn/problems/best-time-to-buy-and-sell-st…

从零构建后端项目-创建SpringBoot项目配置MyBatis

目录 主体介绍 创建SpringBoot项目主要步骤 配置MyBatis 整合高级功能 创建SpringBoot项目 配置Tomcat 配置MySQL数据源 配置Redis数据源 配置MongoDB数据源 运行项目,检测配置 配置MyBatis 创建IDEA数据库连接 生成MyBatis各种文件 配置MyBatis 配…

自然语言处理从入门到应用——静态词向量预训练模型:神经网络语言模型(Neural Network Language Model)

分类目录:《自然语言处理从入门到应用》总目录 《自然语言处理从入门到应用——自然语言处理的语言模型(Language Model,LM)》中介绍了语言模型的基本概念,以及经典的基于离散符号表示的N元语言模型(N-gram…

【Redis基础】

Redis基础 Redis基础Note Redis基础1.初识Redis1.1.认识NoSQL1.1.1.结构化与非结构化1.1.2.关联和非关联1.1.3.查询方式1.1.4.事务1.1.5.总结 1.2.认识Redis1.3.安装Redis1.3.1.依赖库1.3.2.上传安装包并解压1.3.3.启动1.3.4.默认启动1.3.5.指定配置启动1.3.6.开机自启1.3.7.wi…