项目目标:
本项目旨在学习如何自制emoji,学习内容主要分为3个方面,分3次来讲,根本在于了解了turtle的使用!
1.完成一个爱心应援牌
2.完成静态的emoji
3.让emoji动起来!
今天我们来学习第一个部分。
文章目录
- 一、效果展示:
- 导入turtle模块:
- 二、步骤拆解:
- 1. 绘制左边线:
- pensize()
- pencolor()
- left()
- forward()
- 2. 绘制左半圆:
- right()
- circle()
- 3. 绘制右半圆:
- 4. 绘制右边线:
- 5. 填充颜色:
- fillcolor()
- begin_fill ()
- end_fill()
- 6. 填充表白文字
- goto()
- write()
- penup()
- hideturtle()
- 三、彩蛋——circle函数详解
- 三、拓展训练:
- 绘制一个四叶草
- 绘制五角星
- 绘制奥运五环
一、效果展示:
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. 绘制左边线:
接下来我们完成左边线的绘制。
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)
绘制五角星
闪闪红星照我心
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()
绘制奥运五环
东京奥运会的余温刚刚散去,大家是否还记得代表奥林匹克的奥运五环呢?
奥运五环代表着世界五大洲之团结,学完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")
好了,今天的讲解就到这里了,我们下期再见!