当前位置: 首页 > news >正文

《Python趣味工具》——自制emoji2(2)

今天,我们将会完成以下2个内容:

  1. 绘制静态emoji
  2. 总结turtle中常用的绘图函数

文章目录

  • 一、绘制静态emoji:
    • :sparkles: 画脸:
    • :sparkles:绘制嘴巴:
    • :sparkles:绘制眼白:
      • 绘制眼白-Part1:
      • 绘制眼白—part2:
    • :sparkles:绘制黑眼珠:
  • 三、完整代码:
  • 四、函数函数总结:
    • 运动控制命令:
    • 画笔控制命令:
    • 全局控制命令:

一、绘制静态emoji:

绘制方法:拆解绘制法

将绘图步骤拆解完成后,标记出各个部分的起始坐标点位,方便后面绘图。

在这里插入图片描述


✨ 画脸:

首先我们绘制圆脸部分,主要步骤是:

1.定义一个绘制圆脸的函数
2.用黑色画笔画圆
3.用金色填充圆的内部

在这里插入图片描述
示例代码如下:

# 从turtle模块中导入所有函数
from turtle import *
# 定义draw_face()函数绘制脸部# 首先,定义一个draw_face()函数绘制脸部
def draw_face():
# 进入函数的主体部分后,第一步需要将小乌龟放置到我们期待的位置:(-120,0)# 抬起画笔penup()# 移动到坐标点为(-120,0)的地方goto(-120,0)# 落笔pendown()# 将画笔颜色设置为黑色"black"pencolor("black")# 将画笔粗细设置为4pensize(4)# 调整海龟朝向-90度方向seth(-90)# 开始填充颜色begin_fill()# 画圆,圆的半径为130,圆心角为360度circle(130,360)# 填充颜色为"gold"fillcolor("gold")# 停止填充颜色end_fill()

相关步骤如下:

1.定义函数,设置初始位置
为了避免留下小乌龟从初始位置移动到(-120,0)的轨迹,我们可 以:
🐢penup()抬起小乌龟
🐢goto()把小乌龟移动到目标位置
🐢再使用pendown()放下小乌龟

2.设置颜色、大小和朝向
设置画笔颜色和大小:
🐢使用pencolor()将画笔颜色设置为黑色’‘black’',
🐢使用pensize()函数将画笔粗细设置为4.

3.设置画笔的朝向:
为了圆脸的位置正确,需要把小乌龟的头竖直向下放置:
在这里插入图片描述
使用seth()函数,设置画笔朝向-90度的方向开始绘制。
在这里插入图片描述
⭐️两种调整角度的方法

  • 1.相对角度
    以海龟的朝向为基准进行转向。
    例如:left(),right()
  • 2.绝对角度
    以坐标轴方向为基准调整角度。
    例如:seth()
    在这里插入图片描述

4.绘制圆并填充颜色
绘制圆:
使用circle()函数设置圆的半径为130,圆心角度为360度
填充颜色:
🐢用fillcolor()函数将填充颜色设置为"gold"
🐢用begin_fill()函数设置填充起点
🐢用end_fill()函数设置填充终点


✨绘制嘴巴:

绘制嘴巴可以分为以下几步:

1.画笔移动到坐标点(-80,-10)的位置。
2.朝向-90度的方向
3.绘制一个半径为90的半圆。

在这里插入图片描述

# 定义draw_mouth() 函数绘制嘴巴   
def draw_mouth():# 抬起画笔penup()# 移动到坐标点为(-80,-10)的位置goto(-80,-10)# 落笔pendown()# 调整海龟朝向-90度方向seth(-90)# 绘制一个半径为90,圆心角为180的半圆circle(90,180)  

相关步骤如下:

1.设置画笔的初始位置:
和前面绘制圆脸一样,我们也需要使用penup()等函数,将动小乌龟到目标位置:(-80,-10)

2.设置画笔的朝向:
为了嘴巴的位置正确,我们也需要把小乌龟的头竖直向下放置:seth(-90)

3.绘制嘴巴:
使用circle()函数设置圆的半径为90,圆心角度为180度


✨绘制眼白:

思考一下,眼白可以怎么绘制呢?

1.从嘴角位置向上直走60步
2.将海龟角度设置为155度
3.将画笔颜色设置为白色,粗度为20
4.绘制一个半径为100,圆心角为45度的圆弧
在这里插入图片描述

绘制眼白-Part1:

在这里插入图片描述
相关步骤如下:

1.设置画笔的初始位置:
🐢移动到目标位置前,使用penup()隐藏移动痕迹
🐢在绘制完嘴巴的基础上,我们直接前进60步,即可到达目标位置:forward(60)
🐢到达后,使用pendown()将小乌龟放置到画布上~

2.设置画笔的朝向:
将海龟角度设置为155度:seth(155)

3.设置画笔的粗细和颜色:
🐢使用pencolor()将画笔颜色设置为白色’‘white’',
🐢使用pensize()函数将画笔粗细设置为20.

4.绘制眼白:
使用circle()函数设置圆的半径为100,圆心角度为45度

示例代码如下:

# 定义eyes_white()函数绘制眼白   
def eyes_white():# 抬起画笔penup()# 往前直走60步forward(60)# 将角度调整为155度seth(155)# 落笔pendown()# 设置画笔粗细为20pensize(20)# 设置画笔颜色为"white"pencolor("white")# 绘制一个半径为100,圆心角为45的弧形circle(100,45)# 抬笔penup()

ps.绘制完记得抬起小乌龟


绘制眼白—part2:

在这里插入图片描述

绘制第二部分的眼白也是类似的:

  1. 抬起画笔,朝向180度的方向(正左)移动40步
  2. 角度调整为155度
  3. 绘制一个半径为100,圆心角为45度的圆弧
  4. 抬起画笔,朝向180度的方向(正左)移动40步
  5. 角度调整为155度
  6. 绘制一个半径为100,圆心角为45度的圆弧

在这里插入图片描述


✨绘制黑眼珠:

绘制黑眼珠的方法和绘制眼白的方法是类似的

1.画笔朝向0度方向,向前移动6步
2.设置画笔粗细为15,颜色为黑色
3.画一个半径为5的圆
4.向前移动110步,再绘制一个半径为5的圆

在这里插入图片描述


太棒啦!现在我们已经完成了滑稽emoji的绘制~

回顾绘制的过程:
1.将图形拆解为不同的区域
2.分区进行绘制
3.定义函数使区域更明晰

在绘制你需要的图形时也可以使用这样的方法哦~

在这里插入图片描述

三、完整代码:

# 导入turtle中的全部函数
from turtle import *
# 定义draw_face()函数绘制脸部
def draw_face():# 抬起画笔penup()# 移动到坐标点为(-120,0)的地方goto(-120,0)# 落笔pendown()# 将画笔颜色设置为黑色"black"pencolor("black")# 将画笔粗细设置为4pensize(4)# 调整海龟朝向-90度方向seth(-90)# 开始填充颜色begin_fill()# 画圆,圆的半径为130,圆心角为360度circle(130,360)# 填充颜色为"gold"fillcolor("gold")# 停止填充颜色end_fill()
# 定义draw_mouth() 函数绘制嘴巴   
def draw_mouth():# 抬起画笔penup()# 移动到坐标点为(-80,-10)的位置goto(-80,-10)# 落笔pendown()# 调整海龟朝向-90度方向seth(-90)# 绘制一个半径为90,圆心角为180的半圆circle(90,180)# 定义eys_white()函数绘制眼白   
def eyes_white():# 使用penup()函数抬起画笔penup()# 使用forward()函数往前直走60步forward(60)# 使用seth()函数将角度调整为155度seth(155)# 使用pendown()函数落笔pendown()# 使用pensize()函数设置画笔粗细为20pensize(20)# 使用pencolor()函数设置画笔颜色为"white"pencolor("white")# 使用circle()函数绘制一个半径为100,圆心角为45的弧形circle(100,45)# 使用penup()函数抬笔penup()# 使用seth()函数朝向180度方向seth(180)# 使用forward()函数向前走40步forward(40)# 使用seth()函数将角度调整为155度seth(155)# 使用pendown()函数落笔pendown()# 使用circle()函数绘制一个半径为100,圆心角为45度的圆弧circle(100,45)# 使用penup()函数抬笔penup()#  定义一个eyes_black()函数绘制黑眼珠
def eyes_black():# 使用seth()函数将角度设置为0seth(0)# 使用forward()函数前进6步forward(6)# 使用pendown()函数落笔pendown()# 使用pensize()函数设置画笔粗细为15pensize(15)# 使用pencolor()函数设置画笔颜色为"black"pencolor("black")# 使用circle()函数绘制一个半径为5,圆心角为360度circle(5,360)# 使用penup()函数抬笔penup()# 使用forward()函数前进110步forward(110)# 使用pendown()函数落笔pendown()# 使用circle()函数绘制一个半径为5的圆circle(5,360)# 使用hideturtle()函数隐藏画笔hideturtle()# 调用draw_face()函数画脸
draw_face()
# 调用draw_mouth()函数画嘴巴
draw_mouth()
# 调用eyes_white()函数画白眼珠
eyes_white()
# 调用eyes_black()函数画黑眼珠
eyes_black()
# 调用done()暂停
done()

四、函数函数总结:

学到现在或许你有一些疑问:这么多函数太容易记混了,有没有办法归类呢?

在这里我们可以把turtle中常用函数分成三类:

1.运动控制命令
2.画笔控制命令
3.全局控制命令


运动控制命令:

1.前进后退
2.转向
3.控制速度
4.移动到固定点位
5.画圆
等等…………

在这里插入图片描述


画笔控制命令:

1.改变画笔的大小和颜色
2.控制画笔的显示和隐藏
3.控制填充颜色
等等…………

在这里插入图片描述


全局控制命令:

全局控制命令是指可以应用在整个画布和绘画过程中的命令。

1.清空窗口
2.写文本
3.控制动画播放

在这里插入图片描述


http://www.lryc.cn/news/168372.html

相关文章:

  • 【面试刷题】——C++四种类型转化
  • 集成Activiti-Modeler流程设计器
  • 【深度学习】 Python 和 NumPy 系列教程(十一):NumPy详解:3、数组数学(元素、数组、矩阵级别的各种运算)
  • python难题切片处理
  • 《研发效能(DevOps)工程师(中级)认证》证书查询方式和路径丨IDCF
  • NVR添加rtsp流模拟GB28181视频通道
  • 浅谈C++|文件篇
  • C++ QT qml 学习之 做个登录界面
  • LLM 06-大模型架构
  • openGauss学习笔记-71 openGauss 数据库管理-创建和管理普通表-删除表中数据
  • 【k8s】kube-proxy 工作模式
  • Linux:Centos9 《下载-安装》
  • 数字化管理平台建设实践
  • Linux命令(80)之sort
  • [k8s] kubectl port-forward 和kubectl expose的区别
  • vscode如何设置文件折叠
  • Linux centos7 bash编程训练
  • k8s集群换ip
  • 选择HAL库还是标准库
  • 计算机竞赛 机器视觉的试卷批改系统 - opencv python 视觉识别
  • Mapbox gl HTML经纬度点渲染,动态轨迹播放,自定义图形以及轨迹上显示箭头方向
  • kubernetes部署(kubeadmin)
  • Leetcode168. Excel表列名称
  • 碎片笔记 | 大模型攻防简报
  • 【100天精通Python】Day63:Python可视化_Matplotlib绘制子图,子图网格布局属性设置等示例+代码
  • 【Android常见问题(六)】- UX标注色值带有百分比的使用方法
  • Prometheus+Grafana可视化监控【ElasticSearch状态】
  • Java手写堆排序(Heap Sort)和案例
  • Linux设备驱动模型之字符设备
  • Kafka3.0.0版本——消费者(自动提交 offset)