Python turtle库,库的引用、基本使用方法,tutle库练习(画圆、画角、画线条、五星红旗),使用rgb颜色,turtle绘画结束后,画布不消失的三种方法

2024-04-01 1081阅读

Python学习总结–turtle库

​ turtle库,又被称为海龟,是能够进行绘图操作的一个标准库,包含许多用来图形绘制的方法。

在画布上,默认有一个坐标原点为画布中心的坐标轴, 坐标原点上有一只面朝x轴正方向小乌龟。这里我们描述小乌龟时使用了两个词语:标原点(位置),面朝x轴正方向(方向),turtle绘图中, 就是使用位置方向描述小乌龟(画笔)的状态。

​ 使用Python中的turtle库不需要特别的准备。要使用turtle库,你需要确保你的Python环境已经安装,并知道如何导入和使用turtle库。

一、库的引用

如python中的其他标准库和三方库一般,想要使用,需在程序开始处进行库的引用,引用方式主要有以下几种:

1、import turtle:直接引入对应的库

备注:使用这种方式引入库,那么在对turtle库中的函数进行调用时,需要使用这种形式:turtle. 函数名()

例如:

# circle()是turtle库中的一个用来绘制圆的函数
import turtle
turtle. circle(100)

2、from turtle import *:直接从turtle库中引入其所有的函数

备注:在对turtle库中的函数进行调用时,函数名前不用加turtle库名,即使用这种形式:函数名()

例如:

from turtle import *
circle(100)    #直接调用

3、import turtle as t:直接引入库,并给库取一个别名

例如:

import turtle as t
t. circle(100)   #画一个圈

备注:这种方式与方式一很像,在需要多次调用turtle库的函数时,可使用别名简化代码

二、turtle库的基本使用

1、窗体函数:

​ 1)设置窗口的函数:turtle. setup(width,height,starts,starty)

​ 作用:设置绘图窗口的宽高和位置

​ 其中:

​ width:表示绘图窗口的宽度,值是整数,表示的是像素值;值是小数,表示窗口宽度与屏幕的比例。

​ height:表示绘图窗口的高度,值是整数,表示的是像素值;值是小数,表示窗口高度与屏幕的比例。

​ startx:表示绘图窗口左侧与屏幕左侧的像素距离。若不填,默认窗口位于屏幕水平居中。

​ starty:表示绘图窗口顶部与屏幕顶部的像素距离。若不填,默认窗口位于屏幕垂直居中。

​ 2)画布背景色设置:turtle. bgcolor("red")

​ 3)画笔上箭头的隐藏与显示**:

​ turtle. hideturtle() 隐藏

​ turtle. showturtle() 显示

​ 4)设置画笔的移动速度:turtle. speed(n) 设置画笔移动速度,画笔绘制的速度范围[0,10]整数,数字越大越快。

2、画笔状态的函数:有多种,具体见下述

​ 1)提起及放下画笔的函数:这是两个函数,一般都配套使用。

​ 完整形式:

turtle. penup()   提起画笔
turtle. pendown()  放下画笔

作用:提起画笔后,移动画笔或者绘图,均不会在画布上留下痕迹。放下画笔后,移动画笔或者绘图,均会在画布上留下痕迹。

​ 2)画笔状态设置:

turtle. pensize(数字) :画笔粗细

turtle.pencolor('颜色'):画笔颜色

turtle.fillcolor('颜色'):画笔填充颜色

也可以混合使用:turtle. pen(pensize,pencolor,fillcolor)

例如:

(1)turtle. pensize(30):设置画笔的粗细
(2)turtle. color(pencolor,fillcolor):设置画笔的颜色及填充颜色
(3)turtle. fillcolor("blue"):设置图案的填充颜色

3、画笔状态设置:图案颜色填充函数:

turtle. begin_fill() :开始填充

turtle. end_fill():结束填充

具体使用场景如下:

#绘制的一个半径为100内部为蓝色的圆
import turtle as turtle
turtle. fillcolor("blue")
turtle. begin_fill()
turtle. circle(50)
turtle. end_fill()

结果:

Python turtle库,库的引用、基本使用方法,tutle库练习(画圆、画角、画线条、五星红旗),使用rgb颜色,turtle绘画结束后,画布不消失的三种方法

4、画笔状态设置:画笔移动操作的函数:

1)直线运动操作的函数:

​ (1) turtle.forward(200)

​ 作用:往前画长度为200像素的直线(画笔初始方向默认为水平向右)

​ (2) turtle.backward(300)

​ 作用:往后画长度为300像素的直线(画笔方向保持不变)

2)改变画笔方向的函数:

​ (1) turtle.right(90)

​ 作用:画笔沿顺时针方向旋转90度

​ (2) turtle.left(90)

​ 作用:画笔沿逆时针方向旋转90度

​ (3) turtle.setheading(90)

​ 作用:画笔沿逆时针方向旋转90度

备注:括号里面的参数可正可负,正如上述,负为反方向

3)改变画笔当前位置的函数:

​ (1) turtle.goto(x,y)

​ 作用:将画笔从当前位置移动到(x,y)处,x、y为具体像素坐标值(以初始点为坐标原点)

​ (2) turtle.setpos(x,y)

​ 作用:将画笔从当前位置移动到(x,y)处,x、y为具体像素坐标值(以初始点为坐标原点)

​ (3) turtle. setx(x)

​ 作用:将画笔从当前位置水平移动到横坐标为x处,x为具体像素坐标值(纵坐标不变)

​ (4) turtle. set y(y)

​ 作用:将画笔从当前位置竖直移动到纵坐标为y处,y为具体像素坐标值(横坐标不变)

5、画布的全局操作:

​ 1)turtle. clear()

​ 作用:清空turtle画布,但是turtle画笔的位置和状态不变

​ 2)turtle. reset()

​ 作用:清空并复位turtle画布窗口,重置画笔状态(但是画布背景色不变)

​ 3)turtle. undo()

​ 作用:撤销上一个turtle绘图动作

​ 4)turtle. isvisible()

​ 作用:返回当前turtle画布是否可见,若可见,返回True,否则返回False

三、练习

1. 画圆–练习奥运五环

Python turtle库,库的引用、基本使用方法,tutle库练习(画圆、画角、画线条、五星红旗),使用rgb颜色,turtle绘画结束后,画布不消失的三种方法

代码:

#一般形式
import turtle as t #召唤海龟先生
t.pensize(5) #画笔粗细
#第一个圈
t.color("black") #把画笔颜色改为黑色
t.circle(50)     #画圆
#第二个圆
t.color("red")#把画笔颜色改为黑色
t.penup()#抬笔
t.goto(-100,0)#移动到-100,0
t.pendown() #落笔
t.circle(50)
#第三个圆
t.color("blue")
t.penup()
t.goto(100,0)
t.pendown()
t.circle(50)
#第四个圆
t.color("green")
t.penup()
t.goto(-50,-50)
t.pendown()
t.circle(50)
#第五个圆
t.color("yellow")
t.penup()
t.goto(50,-50)
t.pendown()
t.circle(50)

或者使用函数:定义drawCircle函数,使代码简约易理解

#函数形式
import turtle as t #召唤海龟先生
t.pensize(5)
def drawCircle(color,x,y):
    t.color(color)
    t.goto(x,y)
    t.pendown()
    t.circle(50)
    t.penup()
drawCircle("black",0,0)
drawCircle("red",-100,0)
drawCircle("blue",100,0)
drawCircle("green",-50,-50)
drawCircle("yellow",50,-50)

2. 画角

1)画正方形drawRectangle
  • 开始填充 .begin_fill()

  • 结束填充 end_fill()

  • 向右转 .right(度数)

  • 向左转 .left(度数)

  • 直走 .forward(xxx)

    import turtle as t
    t.forward(100)
    t.right(90)
    t.forward(100)
    t.right(90)
    t.forward(100)
    t.right(90)
    t.forward(100)
    t.right(90)
    t.penup()
    t.goto(-200,-100)
    def draw_rectangle(side):
        t.pendown()
        for i in range(4):
            t.forward(side)
            t.right(90)
        t.penup()
    draw_rectangle(50)
    

    如图,画了两个正方形:

    Python turtle库,库的引用、基本使用方法,tutle库练习(画圆、画角、画线条、五星红旗),使用rgb颜色,turtle绘画结束后,画布不消失的三种方法

    2)画三角形 drawTriangle

    turtle.goto(x,y) 让画笔沿直线移动到坐标点(x,y)处

    turtle.setpos(x,y) 与goto命令一样,作用也是让画笔沿直线移动到坐标点(x,y)处

    turtle.sex(x) 只改变x坐标,让画笔产生移动

    turtle.sex(y) 只改变y坐标,让画笔产生移动

    x,y=turtle.pos() 返回画笔当前位置的坐标

    turtle.seth(degree) 用于设置画笔的方向,参数degree为画笔方向与海龟坐标系x轴正向的夹角度数。

    import turtle as t
    # 第一个三角形    原始的方式
    t.color('dark green')
    t.begin_fill()  #填充的起点
    t.forward(100)
    t.left(120)
    t.forward(100)
    t.left(120)
    t.forward(100)
    t.end_fill()   #填充的终点(闭合)
    # 第二个三角形  加入for循环
    t.penup() 
    t.setpos(-100,-100)
    t.pendown()
    t.color('red')
    t.begin_fill() 
    for i in range(3):
        t.forward(100)
        t.left(120)
    t.end_fill()
     
    # 第三个三角形   利用函数+for循环
    t.penup() 
    t.setpos(200,-100)
    def draw_trangle():    #函数形式
        t.pendown()
        t.color('black')
        t.begin_fill() 
        for i in range(3):
            t.forward(100)
            t.left(120)
        t.end_fill()
    draw_trangle()
    

    如图,画了三个三角形:

    Python turtle库,库的引用、基本使用方法,tutle库练习(画圆、画角、画线条、五星红旗),使用rgb颜色,turtle绘画结束后,画布不消失的三种方法

    3)画多边形 drawPolygon

    注意点:熟知内角和的度数。【多边形的内角及内角和 = (n-2)*180°】

    • 五角形
    • 六角形
    • import turtle as t
      # 第一个五角形
      t.color('red')
      t.forward(100)
      t.left(72)
      t.forward(100)
      t.left(72)
      t.forward(100)
      t.left(72)
      t.forward(100)
      t.left(72)
      t.forward(100)
      # 第二个五角形
      t.penup()
      t.setpos(-200,-200)
      t.pendown()
      t.color('green')
      t.begin_fill()
      for i in range(5):
          t.forward(100)
          t.left(72)
      t.end_fill()
          
      t.penup()
      t.setpos(200,-200)
      # 第三个五角形
      def draw_pentagon():
          t.pendown()
          t.color('green')
          t.begin_fill()
          for i in range(5):
              t.forward(100)
              t.left(72)
          t.end_fill()
      draw_pentagon()
      t.exitonclick()   #点击画布时,画布才消失
      

      如图,画了三个五边形:

      Python turtle库,库的引用、基本使用方法,tutle库练习(画圆、画角、画线条、五星红旗),使用rgb颜色,turtle绘画结束后,画布不消失的三种方法

      4)画五角星形drawEive-pointedstar

      五角星的角的度数 36°

      import turtle as t
      t.color('dark green')
      t.begin_fill()
      for i in range(5):
      	t.forward(100)
      	t.right(144)
      t.end_fill()
      

      如图:

      Python turtle库,库的引用、基本使用方法,tutle库练习(画圆、画角、画线条、五星红旗),使用rgb颜色,turtle绘画结束后,画布不消失的三种方法

      另一种方式:

      import turtle as t
      t.color('dark green')
      t.begin fill()
      forin range(5):
      	t.forward(30)
      	t.left(72)
      	t.forward(30)
      	t.right (144)
      t.end fill()
      
      5)画五星红旗
      • 新建一个窗口:t.Screen()

      • 让画笔沿直线移动到坐标点(x,y)处:.setpos(x.y)

      • 设置背景颜色:Object.bgcolor(color)

      • 设置窗口宽、高:Obiect.setup(width,height)

      • 隐藏画笔箭头:setheading(degre)

        '''
        1.画五星红旗D底色为红色 矩形框宽和高比为3比2
        2.确定几颗星星的位置
        3.小星星旋转一个角度指向大星星
        '''
        import turtle as t
        window = t.Screen()
        window.setup(900,600)
        window.bgcolor('red')
        t.speed(0)
        map = t.Screen()
        map.setup(900,600)
        map.bgcolor('red')
        # t.screensize(800,600)
        # t.bgcolor('red') 
        def draw_5pointedstar(x,y,degree,side):
            t.setpos(x,y)
            t.setheading(degree)
            t.pendown()
            t.color('yellow')
            t.begin_fill()
            for i in range(5):
                t.forward(side)
                t.left(72)
                t.forward(side)
                t.right(144)
            t.end_fill()
            t.penup()
            
        #大五星
        t.penup ()
        draw_5pointedstar(-390,180,0,65)
        #右上第1颗小五角星
        draw_5pointedstar(-170,260,330,15)
        #右上第2颗小五角星
        draw_5pointedstar(-120,170,30,15)
        #第3颗小五角星
        draw_5pointedstar(-120,100,0,15)
        #第4颗小五角星
        draw_5pointedstar(-170,60,330,15)
        t.hideturtle()
        t.exitonclick()
        

        爱我中华!

        Python turtle库,库的引用、基本使用方法,tutle库练习(画圆、画角、画线条、五星红旗),使用rgb颜色,turtle绘画结束后,画布不消失的三种方法

        6)叠边形
        import turtle as t
        t.pensize(5)
        t.pencolor("black")
        for i in range(9):  #一共有9条边,顾循环9次
            t.forward(100)
            t.left(80) #叠边形的内角为100,偏移角度为80
        t.exitonclick()
        

        如图:

        Python turtle库,库的引用、基本使用方法,tutle库练习(画圆、画角、画线条、五星红旗),使用rgb颜色,turtle绘画结束后,画布不消失的三种方法

        3. 线条艺术

        1)贝壳
        #贝壳
        import turtle as t
        t.speed(15)     #调整画笔的速度
        for x in range(20):
            t.circle(x*3)
        t.exitonclick()
        

        如图:

        Python turtle库,库的引用、基本使用方法,tutle库练习(画圆、画角、画线条、五星红旗),使用rgb颜色,turtle绘画结束后,画布不消失的三种方法

        2)让贝壳旋转起来
        # 利用for循环
        import turtle as t
        t.speed(20)
        for x in range(30):
            t.circle(x*3)
            t.left(90)      #旋转90°
        t.exitonclick()
        #或者利用while循环
        

        如图:

        Python turtle库,库的引用、基本使用方法,tutle库练习(画圆、画角、画线条、五星红旗),使用rgb颜色,turtle绘画结束后,画布不消失的三种方法

        3)迷宫
        import turtle as t
        t.speed(100)
        X = 0
        while X  
        

        如图:

        Python turtle库,库的引用、基本使用方法,tutle库练习(画圆、画角、画线条、五星红旗),使用rgb颜色,turtle绘画结束后,画布不消失的三种方法

        4.色彩

        1)使用RGB表达色彩

        这里用到了随机函数random.randint(),使用前需要导入 import random

        import turtle as t
        import random    #导入
        screen = t.Screen()     #创建新的窗口
        screen.colormode(255)
        t.speed(20)
        t.pensize(2)
        for x in range(50):         #利用随机函数随机获取rgb三种颜色
        	r = random.randint(0,255)
        	g = random.randint(0,255)
        	b = random.randint(0,255)
        	t.color(r,g,b)
        	t.circle(x)
        	t.left(90)
        t.exitonclick()
        

        如图:

        Python turtle库,库的引用、基本使用方法,tutle库练习(画圆、画角、画线条、五星红旗),使用rgb颜色,turtle绘画结束后,画布不消失的三种方法

        2)如何适用多种颜色?
        import turtle as t
        window = t.Screen()
        window.bgcolor('black')
        # sides = eval(input("输入要绘制的边的数目 (2-6) !"))
        sides = 6
        t.speed(20)
        colors =["red","yellow","green","blue","orange","purple"]
        for x in range(100):
            t.pencolor(colors[x % sides])
            t.forward(x * 3 / sides + x)
            t.left(360 / sides + 1)
            t.width(x* sides / 200)
            
        t.exitonclick()
        

        如图:

        Python turtle库,库的引用、基本使用方法,tutle库练习(画圆、画角、画线条、五星红旗),使用rgb颜色,turtle绘画结束后,画布不消失的三种方法

        三、turtle绘画结束后,画布不消失的三种方法

        在pycharm/vscode中绘图完毕,画布总会消失。有三种方法能让turtle绘画结束后画布不消失,如下最后三个语句:`

        • turtle.exitonclick() #点击画面时画布才会消失
        • turtle.mainloop() #这种方法会使得后面的代码无法运行
        • turtle.done() #这种方法会使得后面的代码无法运行
VPS购买请点击我

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

目录[+]