Python中turtle的基础用法

一、turtle的简单介绍

turtle(海龟),是python自带的的一个基于thinker的一个绘图标准库,无需下载即可使用,能够通过坐标控制,抬笔落笔等操作绘制自己需要的图形。

二、turtle基础

1、在使用turtle时,首先要做的是导入turtle库

 第一种导入方式:from turtle import *                 从turtle库中导出所有的方法和属

 注意:在使用该方法时无需添加任何的对象,就可以直接使用turtle库中的方法

 第二种导入方式:import turtle as t 

 (as t   是turtle太长了,使用不太方便,取个别名 t 使用 更加方便,你可以将t理解为一个自定义的对象,之后可以通过它调用turtle的方法)

下面我们分别使用两种导入方式来实现同一功能:

第一种:

from turtle import *

forward(200) # 沿着当前方向前进200像素
circle(80)   # 绘制一个半径为80像素的圆
goto(0,0)    # 并且回到原点
done()       # 维持界面

第二种:

import turtle as t

t.forward(200)    # 沿着当前方向前进200像素
t.circle(80)      # 画一个半径为80像素的圆
t.goto(0,0)       # 并且回到原点
t.done()          # 维持界面

2、turtle的常用方法


# pensize()用于设置画笔的宽度,里面直接放整数即可。
"""
setup() 用于新建画布
setup(width,height,startx,starty)

width:    代表画布宽度,若是整数则代表有多少像素,若是小数则代表占屏幕的比率
height:   代表画布的高度,若是整数则代表有多少像素,若是小数则代表占屏幕的比率
startx:   正值则代表距离屏幕左边界多少像素,负值则代表距离屏幕右边界有多少像素
starty:   正值则代表距离屏幕上边界多少像素,负值则代表距离屏幕下边界有多少像素
"""
#例如:
import turtle
turtle.setup(width=0.75,height=0.85,startx=100,starty=0)
turtle.done()

3、有关画笔的相关属性及问题的介绍

画笔:在画布的中央默认有x,y轴的坐标系,坐标原点的位置在画布正中央,坐标原点也是画笔的初始位置。画笔的初始方向为x轴的正方向。

以下我们介绍画笔的常用命令(用于设置画笔的各类属性,和操作画笔绘图):

基础阶段设置和操作画笔的主要命令如下:

设置笔的颜色:pencolor()                                    例如:pencolor("red")  设置画笔为红色

设置笔的宽度:pensize()                                      例如:pensize(5)    设置画笔宽度为5px

抬笔:penup()                               简写:pu()                

落笔:pendown()                           简写:  pd()

沿当前方向前进:forward()         简写:fd()

逆时针方向旋转:left()                   简写:  lt()       例如:left(180°)  画笔方向逆时针旋转180°

顺时针方向旋转:right()                 简写:rt()        例如:right(90°)  画笔方向顺时针旋旋90°

案例一:画一个边长为180像素的正方形(要求下边为绿色,右边为红色,上边为蓝色,左边为黄色)

import turtle as t

# 绿、红、蓝、黄
t.pencolor("green")      #设置画笔的颜色为绿色
t.forward(180)           #前进180px

t.left(90)               #逆时针旋转90°
t.pencolor("red")        #设置画笔的颜色为红色
t.forward(180)           #向前180px

t.left(90)               #逆时针方向旋转90°
t.pencolor("blue")       #设置画笔的颜色为蓝色
t.forward(180)           #向前180px

t.left(90)               #逆时针旋转90°
t.pencolor("yellow")     #设置画笔的颜色为黄色
t.forward(180)           #前进180px

t.done()                 #绘制完成后维持结果界面

绘制的正方形的效果如下:

案例二:

接下来我来介绍一个非常实用的功能:颜色填充

即:fillcolor()、begin_fill()、end_color()三者的应用    

接下来我们在案例一的基础之上对所画的正方形填充pink颜色

"""
主要在正确的位置添加以下三行代码:
t.fillcolor("pink")     #设置填充颜色为pink
t.begin_fill()          #开始填充
t.end_fill()            #结束填充
"""
import turtle as t

# 绿、红、蓝、黄

t.pencolor("green")
t.fillcolor("pink")            # 设置填充颜色为 pink
t.begin_fill()                 # 在当前位置开启填充(就是在画笔没有移动前开始)             
t.forward(180)
t.left(90)
t.pencolor("red")
t.forward(180)
t.left(90)
t.pencolor("blue")
t.forward(180)
t.left(90)
t.pencolor("yellow")
t.forward(180)
t.end_fill()                   # 在画笔完成所有的移动后结束填充
t.done()                        

效果如下:

案例三:绘制一个与下图一样的正方形(边长180px),并且在最后隐藏画笔(hideturtle()即可实现隐藏画笔):

分析:本题首先要使用“red”颜色开启填充,然后沿着x轴正方向移动180px,再左转90°前进180px

           然后再回原点,就完成绘制右下角的红色三角形 。此时的画笔朝向x轴正向,同样需要先使

           用“yellow”颜色开启填充,先左转再前进180px,再右转90°再前进180x,然后回归原点。

实现代码:

import turtle as t      #导入海龟画图的第三方模块
t.fillcolor("red")      #设置填充颜色为红色
t.begin_fill()          #开始填充
t.forward(180)          #在起始位置沿x轴正方向移动180像素
t.left(90)              #海龟逆时针方向旋转90度
t.fd(180)               #前进180px
t.home()                #使画笔回归坐标原点
t.end_fill()            #结束填充


t.fillcolor("yellow")   #设置填充颜色为黄色
t.begin_fill()          #开始填充
t.lt(90)                #左转90°
t.fd(180)               #前进180px
t.rt(90)                #右转90°
t.fd(180)               #前进180px
t.home()                #回到坐标原点
t.end_fill()            #填充结束
t.hideturtle()          #隐藏画笔
t.done()                #使界面结果一直存在,不会立刻关闭

介绍以下:circle()   是turtle用来画圆使使用的

t.circle(radius,extent=None)

radius: 是圆的半径,如果半径为正值,则圆心在点的左侧,为负则在圆心的右侧

extent:    就是绘制的角度,它的默认值为360°(该参数可以没有),绘制的角度值如果为正的话就朝着画笔朝向的那一侧从该点画圆,若角度为负的话则是朝向画笔反方向那一侧从该点画圆

"""
注释真的非常重要,请仔细分析,并去认真的理解注释所叙述的内容。
"""

#圆的绘制
import turtle as t
t.pensize(10)

t.circle(100,360)   # r =100 > 0 所以,圆心在画笔的左侧,由于此时画笔朝向x轴的正方向,所以圆心在画笔的上方extent(角度)=360 > 0  所以,从画笔正向那一侧在该点起始画圆
t.circle(-100,-360) # r = -100 < 0 所以,圆心在画笔的右侧,由于此时画笔朝向x轴的正方形,则可得圆心在画笔的下方extent(角度)=-360 < 0 所以,从画笔的反方向那一侧在该点开始画圆

以上代码的实现图如下:

分析:由于画笔的指向是x轴的正方向,所以其左侧起始就是其上侧,其右侧起始就是其下侧。t.circle(100,360)其半径r=100 > 0,所以就意味着其圆心在画笔的左侧(此处也就是上侧),即A点。   extent=360>0也就意味着会从画笔正方向那一侧以A点为圆心,从画笔所在位置开始绘制一个圆。                                                                t.circle(-100,-360) 半径 r < 0 所以其圆心在画笔的右侧(此处即使下侧)B点,由于extent(角度) < 0所以会从画笔方向的反侧,以B为圆心,从画笔所在处画圆。                                                                  

案例五:绘制下图一样的奥运五环(综合案例)

           

import turtle as t
t.pensize(5)          # 设置画笔的宽度
t.speed(8)            # 设置画笔的速度

#蓝色圈
t.color("blue")       # 和pencolor()同样可以设置画笔的颜色
t.circle(60,360)


#黑色圈
t.penup()             # 抬笔        
t.goto(90,0)          # 移动画笔至(90,0点)
t.pendown()
t.pencolor("black")
t.circle(60,360)


#红色圈
t.penup()
t.goto(182,0)
t.pendown()
t.color("red")
t.circle(60,360)

#黄圈
t.penup()
t.goto(140,-70)
t.pendown()
t.color("yellow")
t.circle(60,360)

#绿圈
t.penup()
t.goto(35,-70)
t.pendown()
t.pencolor("green")
t.circle(60,360)

t.done()

三、总体内容概术

以上对turtle定义的介绍是次要,重要的是要懂对turtle的导入,以及能够熟练的使用以上所列出的画笔的用法,能够用其画出指定的且个性化的图形,以上内容随然不够完整,turtle库中还有许多的用法没有涉及,但是对于初学者来说,掌握上面的经常使用的画笔用法是足够了。也能够为后续的学习奠定坚实的基础。

我知道我的博客有很多的不足,麻烦阅读者给我建议,我也需要逐渐的改进和提升!让我们共同进步吧!