当前位置:   article > 正文

《Python趣味工具》——自制emoji(1)绘制爱心应援牌❤️

自制emoji

项目目标:
本项目旨在学习如何自制emoji,学习内容主要分为3个方面,分3次来讲,根本在于了解了turtle的使用!
1.完成一个爱心应援牌
2.完成静态的emoji
3.让emoji动起来!

今天我们来学习第一个部分。


在这里插入图片描述


一、效果展示:

turtle,中文名小海龟,是一种Logo编程语言。

可以用它来实现绘图,制作简单游戏等功能。

导入turtle模块:

可以用两种方式来导入turtle。

1️⃣方法1:
import turtle:直接导入turtle模块。

在使用过程中,如果需要使用turtle模块中的函数,方法是:

turtle.pensize(),turtle.pencolor()


2️⃣方法2:
from turtle import *:从turtle模块中导入所有的函数

这样就可以直接使用turtle模块中的函数,例如:

pensize(),pencolor()


好了,废话不多说,直接上代码:

下面这部分代码是利用turtle()的各种函数绘制了一个心形应援牌。

# 从turtle中导入所有函数
from turtle import *

# 绘制心形
# 使用pensize()函数将画笔粗细设置为5
pensize(5)

# 使用pencolor()函数设置颜色
# 画笔颜色为"red"
pencolor("red")

# 使用fillcolor()函数设置填充颜色
# 填充颜色为"pink"
fillcolor("pink")

# 使用begin_fill()函数准备开始填充图形
begin_fill()

# 使用left()函数向左转135度
left(135)

# 使用forward()函数向前进100步
forward(100)

# 使用right()函数右转180度
right(180)

# 使用circle()函数画半圆,半径为50,角度-180度
circle(50,-180)

# 使用left()函数向左转90度
left(90)

# 使用circle()函数画半圆,半径为50,角度-180度
circle(50,-180)

# 使用right()函数右转180度
right(180)

# 使用forward()函数向前进100步
forward(100)

# 使用end_fill()函数填充完成
end_fill()

# 填充文字
# 使用penup()函数抬起画笔
penup()

# 使用pencolor()函数设置画笔颜色为黑色
pencolor("black")

# 使用goto()函数将画笔移动到坐标(0,80)的位置
goto(0,80)

# 使用hideturtle()函数隐藏画笔
hideturtle()

# 设定write()函数输入内容为"LOVE YOU",居中对齐,字体为"Arial"和大小为20粗细为"bold"
write("LOVE YOU",align = "center",font=("Arial",20,"bold"))

# 防止程序一闪而过,导致无法看清所画
done()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63

绘制效果如下:
在这里插入图片描述


二、步骤拆解:

我们将绘制爱心应援牌的步骤分解为几个部分。

  1. 绘制左边线
  2. 绘制左半圆
  3. 绘制右半圆
  4. 绘制右边线
  5. 填充颜色
  6. 填充表白文字
    在这里插入图片描述

1. 绘制左边线:

接下来我们完成左边线的绘制。

pensize()

一个函数,作用是设置画笔粗细

设置的参数表示画笔的粗细程度。

例如:pensize(5)表示将画笔粗度设置为5


pencolor()

一个函数,作用是设置画笔颜色

例如:pencolor(“red”),画笔颜色为红色。

颜色设置
pencolor()的颜色设置很灵活,参数可以用三种模式填写,比如:

RGB颜色值:(255,192,203)
16进制颜色码:#FFC0CB
英文代码:“pink”

它们呈现的结果都是粉色,其他色彩设置可以参考网站: 颜色设置参考网站


left()

一个函数,作用是将画笔方向向左转

设置的参数表示小海龟(画笔)向左转的角度。

例如:left(135)表示向左转135度。
在这里插入图片描述
相信细心的你已经发现了,小海龟的初始朝向是水平向右的!


forward()

一个函数,作用是向画笔方向前进

设置的参数表示前进的步数。

例如:forward(100)表示向海龟头的方向前进100步
在这里插入图片描述


2. 绘制左半圆:

接下来我们完成左半圆的绘制。

right()

一个函数,作用是将画笔方向向右转

设置的参数表示向右转的角度。

例如:right(180)表示向右转180度。
在这里插入图片描述
注意:小海龟的转动是以当前头的朝向为参考点的,即可认为头的朝向永远是0度(尽管在坐标系中实际不是这样的)。


circle()

一个函数,作用是画圆

circle(radius,extent=None,steps=None)

例如:circle(50,-180)表示绘制一个半径为50,圆心角为-180的半圆。
在这里插入图片描述


3. 绘制右半圆:

接下来我们完成右半圆的绘制。

绘制右半圆
我们可以用同样的方法来绘制右半圆。

此时我们需要将乌龟的头向左旋转90度,半径设置为50,顺时针画半圆(180度)。
在这里插入图片描述
其实这些角度都是可以自己计算出来的,自己想要绘制什么样的图形,那么你就要去设计相应的参数是什么!


4. 绘制右边线:

和绘制左边线一样,接下来我们完成右边线的绘制。


5. 填充颜色:

fillcolor()

fillcolor()可以设置填充颜色
例如:fillcolor(“pink”)是指将填充颜色设置为粉色。


begin_fill ()

设置颜色填充的起点


end_fill()

设置颜色填充的终点


6. 填充表白文字

接下来我们完成最后一个步骤:填充表白文字。

填写文字的步骤是:

1.设置画笔颜色
2.将画笔移动到爱心的中心位置
3.写下表白的话
在这里插入图片描述

goto()

一个函数,作用是移动到指定坐标位置

goto(x,y)参数需要填写移动到的具体坐标位置。

例如goto(0,80)就是移动到x=0,y=80的位置


write()

一个函数,作用是填写文字

write()函数有4个参数,只有参数1是必选的,其他的参数你可以根据自己的需求设置。

write(arg,move,align,font)

在这里插入图片描述
例如:write(“LOVE YOU”,align = “center”,font=(“Arial”,20,“bold”))

表示:书写的内容是"LOVE YOU “,文字内容居中,字体为"Arial”,字体大小20,粗细为"bold"粗。


抬起和隐藏画笔

指示牌完成后发现画笔一直连到了文字的位置,并且画笔的光标一直闪烁。

我们希望移动画笔时,画笔可以抬起,书写完文字后画笔能够隐藏起来。

在这里插入图片描述


penup()

一个函数,作用是抬起画笔


hideturtle()

一个函数,作用是隐藏海龟画笔


三、彩蛋——circle函数详解

turtle中最为复杂的就是circle函数啦,不过画圆,画弧形都离不开它,你可以参考介绍,多多运用。

circle(radius,extent=None,steps=None)

1️⃣参数1:radius表示半径。
当radius值为正数时,圆心在当前位置左侧。
当radius值为负数时,圆心在当前位置右侧。
在这里插入图片描述


2️⃣参数2:extent设置弧形角度(可省略)。
当extent值为正数时,顺小海龟当前方向绘制。
当extent值为负数时,逆小海龟当前方向绘制。

在这里插入图片描述


3️⃣参数3:steps表示起点到终点由几条线组成。(可省略)


三、拓展训练:

绘制一个四叶草

使用 turtle 库的 right() 函数和 circle() 函数绘制一个四叶草,效果如下图所示:
在这里插入图片描述
你需要完成:
1.从初始位置 (0,0) 开始绘制,并设置画笔粗细为5
2.绘制四叶草,注意:每片叶子为半径50,圆心角180的圆

# 利用from.....import....导入turtle模块所有函数
from turtle import *

# 从初始位置(0,0)开始绘制,并设置画笔粗细为5
goto(0,0)

pensize(5)

# 创建循环绘制四叶草
for i in range(4):

    # 画笔方向右转90度 
    right(90)
    
    # 画一个半径为50,圆心角为180度的圆
    circle(50,180)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

绘制五角星

闪闪红星照我心
2021年是中国共产党建党一百周年,正是因为有了革命先烈的英勇无畏,才有了祖国今天的繁荣昌盛

闪闪红星照耀在每个人心中,快来尝试一下用刚学到的知识来绘制一颗闪闪的红星吧!

你需要做到:
1.设置画笔粗细为5,画笔颜色为yellow,填充颜色为red
2.从初始位置(-90,0)开始绘制
3.创建for循环,在每次循环中:前进200距离,然后向右旋转144度

绘制完成后的效果图如下:
在这里插入图片描述

# 利用from.....import....导入turtle模块所有函数
from turtle import *

# 设置画笔粗细为5,画笔颜色为yellow,填充颜色为red,初始位置为(-90,0)
pensize(5)

pencolor("yellow")

fillcolor("red")

goto(-90,0)

# 开始填充
begin_fill()

# 创建for循环,开始绘制闪闪红星
for num in range(4):

    # 前进200距离
    forward(200)
    
    # 画笔向右旋转144度
    right(144)  
    
# 完成填充
end_fill()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26

绘制奥运五环

东京奥运会的余温刚刚散去,大家是否还记得代表奥林匹克的奥运五环呢?

奥运五环代表着世界五大洲之团结,学完turtle之后的你试着把它画出来吧

你需要完成的是:
1.定义一个绘制圆环的函数getCircle( ),参数为圆的颜色color

2.getCircle( )函数实现的功能是绘制一个画笔粗细为5,半径为50的圆

3.绘制圆环,在坐标点位为(-80,0) (0,0) (80,0) (-40,-80) (40,-80)的位置分别使用getCircle( )函数

4.上述位置绘制圆的颜色依次为blue,black,red,yellow,green

绘制完成后的效果图如下:
在这里插入图片描述

# 利用from.....import....导入turtle模块所有函数
from turtle import *

# 定义一个绘制圆环的函数getCircle(),参数为color,设置画笔颜色为参数color,画笔粗细为5,圆半径为50
def getCircle(color):
    # 落下画笔
    pendown()
    
    pensize(5)
    
    pencolor(color)
    
    circle(50,360)   
    
    # 抬起画笔
    penup()

# 隐藏画笔
hideturtle()
# 抬起画笔
penup()

# 在(-80,0)(0,0)(80,0)(-40,-80)(40,-80)绘制五环
goto(-80,0)
getCircle("blue")

goto(0,0)
getCircle("black")

goto(80,0)
getCircle("red")

goto(-40,-80)
getCircle("yellow")

goto(40,-80)
getCircle("green")


  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39

好了,今天的讲解就到这里了,我们下期再见!
在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/622449
推荐阅读
相关标签
  

闽ICP备14008679号