【Python绘画】画笑脸简笔画

本文收录于 《一起学Python趣味编程》专栏,从零基础开始,分享一些Python编程知识,欢迎关注,谢谢!

文章目录

    • 一、前言
    • 二、代码示例
    • 三、知识点梳理
    • 四、总结

一、前言

本文介绍如何使用Python的海龟画图工具turtle,画笑脸简笔画。

  • 什么是Python?

    Python是由荷兰人吉多·范罗苏姆于1990年代初设计的一门编程语言,应用领域非常广泛,尤其在数据分析、人工智能领域,已经成为最受欢迎的程序设计语言之一,比较适合新手学习。

    这门编程语言之所以叫Python,意为大蟒蛇,是因为当时有一个电视喜剧《蒙提·派森的飞行马戏团》(Monty Python’s Flying Circus)在热播,很受大家喜欢。

  • 什么是海龟画图工具turtle?

    turtle,中文意思为海龟,是Python语言中自带的一个用于绘制图像的函数库。turtle函数库为使用者提供一个或多个小乌龟作为画笔,使用者可通过turtle库提供的各种方法来控制小乌龟在一个平面直角坐标系中移动并绘制移动轨迹以画出想要的图案。

二、代码示例

首先,看一下使用Python画的笑脸简笔画是什么样的?
在这里插入图片描述

之后,看一下对应的Python代码,如下:

# 导入海龟画笔函数库
import turtle"""
笑脸简笔画
@author 姑苏老陈
@date 2024-06-04
"""# 创建画布对象
myScreen = turtle.Screen()
# 创建海龟画笔对象
myTurtle = turtle.Turtle()
# 设置画笔线条宽度
myTurtle.pensize(6)
# 设置画笔颜色
myTurtle.color('black')# 画脸蛋
myTurtle.pendown()
myTurtle.circle(100)
myTurtle.penup()# 画左眼
myTurtle.goto(-30, 120)
myTurtle.pendown()
myTurtle.left(90)
myTurtle.circle(12, 180)
myTurtle.penup()# 画右眼
myTurtle.goto(40, 120)
myTurtle.pendown()
myTurtle.left(180)
myTurtle.circle(12, 180)
myTurtle.penup()# 画嘴巴
myTurtle.goto(-40, 80)
myTurtle.pendown()
myTurtle.circle(35, 180)# 隐藏画笔
myTurtle.hideturtle()
# 屏幕事件循序,保持窗口打开
myScreen.mainloop()

三、知识点梳理

本次代码示例中涉及的Python知识点梳理如下:

turtle.color(*args)
返回或设置画笔颜色和填充颜色;比如:turtle.color('red', 'pink'),设置画笔颜色为red、填充颜色为pink;
turtle.pensize(*width*)
设置线条的粗细为 width 或返回该值。如未指定参数,则返回当前的 pensize;比如:turtle.pensize(10),设置画笔线条的粗细为10个像素;
turtle.pendown()画笔落下 -- 移动时将画线。
turtle.penup()画笔抬起 -- 移动时不画线
turtle.circle(radius, extent=None, steps=None)
参数:
radius -- 一个数值
extent -- 一个数值 (None)
steps -- 一个整型数 (None)绘制一个 radius 指定半径的圆。圆心在海龟左边 radius 个单位;extent 为一个夹角,用来决定绘制圆的一部分。如未指定 extent*	则绘制整个圆。如果 *extent 不是完整圆周,则以当前画笔位置为一个端点绘制圆弧。如果 radius 为正值则朝逆时针方向绘制圆弧,  	否则朝顺时针方向。最终海龟的朝向会依据 extent 的值而改变。圆实际是以其内切正多边形来近似表示的,其边的数量由 steps 指定。如果未指定边数则会自动确定。此方法也可用来绘制正多边	形。比如,turtle.circle(50, 360),画一个圆圈,半径为50个像素,角度为360度;
screen.mainloop()开始事件循环。否则,程序执行完毕后,窗口会关闭;
turtle.left(*args)设置海龟画笔左转指定的度,比如,turtle.left(160)
turtle.goto(x, y=None)海龟移动到一个绝对坐标。如果 y 为 None,x 应为一个表示坐标的数值对。
比如,turtle.goto(-40, 80),海龟移动到X=-40,Y=80坐标值上;
turtle.hideturtle()使海龟不可见。

四、总结

以上介绍了如何使用Python的海龟画图工具turtle画笑脸简笔画。另外,对代码中涉及的Python编程知识点,做了简单的介绍。希望对大家有帮助,谢谢关注。

如果您对文章中内容有疑问,欢迎在评论区进行留言,我会尽量抽时间给您回复。如果文章对您有帮助,欢迎点赞、收藏。您的点赞,是对我最大的支持和鼓励,谢谢 :-)

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

fastjson 泛型转换问题(详解)

系列文章目录 附属文章一:fastjson TypeReference 泛型类型(详解) 文章目录 系列文章目录前言一、代码演示1. 不存在泛型转换2. 存在泛型转换3. 存在泛型集合转换 二、原因分析三、解决方案1. 方案1:重新执行泛型的 json 转换2. …

23种模式之一— — — —适配器模式的详细介绍与讲解

适配器介绍与讲解 一、概念二、适配器模式结构适配器分类核心思想核心角色模式的UML类图应用场景模式优点模式缺点 实例演示图示代码演示运行结果 一、概念 适配器模式(别名:包装器) 是一种结构型设计模式 将一个类的接口转换成客户希望的另…

每日一练:利用多态思想和ArrayList集合,编写一个模拟KTV点歌系统的程序。【多态思想和ArrayList集合的综合应用】

目录 一、设计程序使用ArrayList集合,编写一个模拟KTV点歌系统的程序。参考代码歌曲类歌单类KTV类测试类运行效果 总结 最后 一、设计程序 使用ArrayList集合,编写一个模拟KTV点歌系统的程序。 要求: 输入0代表添加歌曲输入1代表将所选歌曲…

STM32高级控制定时器之输入捕获模式

目录 概述 1 输入捕获模式 1.1 原理介绍 1.2 实现步骤 1.3 发生输入捕获流程 2 使用STM32Cube配置工程 2.1 软件环境 2.2 配置参数 2.3 生成项目文件 3 功能实现 3.1 PWM调制占空比函数 3.2 应用函数库 4 测试 4.1 功能框图 4.2 运行结果 源代码下载地址&#xf…

MySQL 存储过程(一)

本篇主要介绍MySQL存储过程的相关内容 目录 一、什么是存储过程? 二、基本语法 创建存储过程 调用存储过程 查看存储过程 删除存储过程 三、变量 系统变量 用户自定义变量 局部变量 四、存储过程的参数 in out inout 一、什么是存储过程&#xff1f…

9 个步骤内快速完成 SEO 审核

SEO审计对于提高网站在搜索引擎结果中的性能和可见性至关重要。这种系统评估涉及仔细检查各种元素,从关键字和页面优化到网站结构和页面速度等技术方面。在本指南中,我们将概述执行全面 SEO 检查器的 12 个基本步骤,帮助您确定优势、劣势和改…

基于小波区间相关的信号降噪方法(MATLAB 2021B)

在我们处理信号过程中最重要的任务就是找到信号隐藏的规律和信号的特征。常用的傅里叶分析法只能用于在时间域或者频率域上分析信号,而通常的数据会在时间域和频率域均有特征。而小波分析是继傅里叶分析之后的一大突破性创新,也是近年来在学术界非常热门…

小熊家务帮day5-day7 客户管理模块1 (小程序认证,手机验证码认证,账号密码认证,修改密码,找回密码等)

客户管理模块 1.认证模块1.1 认证方式介绍1.1.1 小程序认证1.1.2 手机验证码登录1.1.3 账号密码认证 1.2 小程序认证1.2.1 小程序申请1.2.2 创建客户后端工程jzo2o-customer1.2.3 开发部署前端1.2.4 小程序认证流程1.2.4.1 customer小程序认证接口设计Controller层Service层调用…

使用import语句导入模块

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 创建模块后,就可以在其他程序中使用该模块了。要使用模块需要先以模块的形式加载模块中的代码,这可以使用import语句实现。im…

react、vue动态form表单

需求在日常开发中反复写form 是一种低效的开发效率,布局而且还不同这就需要我们对其封装 为了简单明了看懂代码,我这里没有组件,都放在一起,简单抽离相信作为大佬的你,可以自己完成, 一、首先我们做动态f…

外包小菜鸡花了几个w报的课立志进大厂

不知不觉已经毕业了好几年,但是感觉还是自己的年龄增长了而已,对应的技术却没学到,最后一咬牙报了图灵的架构VIP班,不得不说,诸葛老师讲的是真的好呀,大家可以看看他的公开课,希望学完下面这些视…

JVMの内存泄漏内存溢出案例分析

1、内存溢出 内存溢出指的是程序在申请内存时,没有足够的内存可供分配,导致无法满足程序的内存需求,常见的内存溢出情况包括堆内存溢出(Heap Overflow)和栈溢出(Stack Overflow): …

《数字图像处理-OpenCV/Python》第15章:图像分割

《数字图像处理-OpenCV/Python》第15章:图像分割 本书京东 优惠购书链接 https://item.jd.com/14098452.html 本书CSDN 独家连载专栏 https://blog.csdn.net/youcans/category_12418787.html 第15章:图像分割 图像分割是由图像处理到图像分析的关键步骤…

spark的简单学习二

一 spark sql基础 1.1 Dataframe 1.介绍: DataFrame也是一个分布式数据容器。然而DataFrame更像传统数据库的二维表 格,除了数据以外,还掌握数据的结构信息,即schema。同时,与Hive类似,DataFrame也支 持…

STM32_HAL_I2C_串行接口

电气特性 I2C(Inter-Integrated Circuit)是一种由飞利浦公司(现恩智浦半导体)开发的串行通信协议,用于连接低速外围设备。I2C总线只需要两根线(SDA:串行数据线,SCL:串行…

免费生物蛋白质的类chatgpt工具助手copilot:小分子、蛋白的折叠、对接等

参考: https://310.ai/copilot 可以通过自然语言对话形式实现小分子、蛋白质的相关处理:生成序列、折叠等 应该是agent技术调用不同工具实现 从UniProt数据库中搜索和加载蛋白质。使用ESM Fold方法折叠蛋白质。使用310.ai基础模型设计新蛋白质。使用TM-Align方法比较蛋白质…

【Spring Cloud】微服务链路跟踪Sleuth

目录 为什么要使用微服务链路跟踪微服务的现状多服务协同工作复杂的调用链条容易出错 微服务链路跟踪需要实现的需求实现监控决策避免技术债务快速定位故障 微服务链路跟踪的技术要求低消耗应用透明延展性可控采样率可视化 Spring Cloud Sleuth简介Spring Cloud Sleuth的4个特点…

Shell脚本快速入门

为什么要学shell?能做什么? 答:CI/CD 持续集成,自动化部署作业方式,需要将一系列linux命令程序化,shell 就能做到,提高运维人员的工作效率。 指定解析器: (1) shell解析器 #…

Linux网络-自定义协议、序列化和反序列化、网络计算服务器的实现和Windows端客户端

文章目录 前言一、自定义协议传结构体对象 序列化和反序列化什么是序列化?反序列化 二、计算器服务端(线程池版本)1.main.cc2.Socket.hpp3.protocol.hpp4.Calculator.hpp5.serverCal.hpp6.threadPool.hpp7.Task.hpp8. log.hpp 客户端Windows客…

小白级教程—安装Ubuntu 20.04 LTS服务器

下载 本教程将使用20.04版进行教学 由于官方速度可能有点慢,可以下方的使用清华镜像下载 https://mirrors.tuna.tsinghua.edu.cn/ubuntu-releases/ 点击20.24版本 选择 ubuntu-20.04.6-live-server-amd64.iso 新建虚拟机 下载好后 我们使用 VMware 打开它 这里选…