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

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

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

一、绘制静态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")
    
    # 将画笔粗细设置为4
    pensize(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()
    
    # 设置画笔粗细为20
    pensize(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")
    # 将画笔粗细设置为4
    pensize(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()函数设置画笔粗细为20
    pensize(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()函数将角度设置为0
    seth(0)
    # 使用forward()函数前进6步
    forward(6)
    # 使用pendown()函数落笔
    pendown()
    # 使用pensize()函数设置画笔粗细为15
    pensize(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.控制动画播放

在这里插入图片描述


评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

追逐远方的梦

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

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

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

打赏作者

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

抵扣说明:

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

余额充值