Python绘图魔法之如何用turtle库开启你的编程艺术之旅

 更新时间:2025年11月20日 09:07:42   作者:https://blog.csdn.net/2303_79015671/article/details/144488852  
Python的turtle库是一个直观有趣的图形绘制函数库,是python的标准库之一,这篇文章主要介绍了Python绘图魔法之如何用turtle库开启你的编程艺术之旅,文中通过代码介绍的非常详细,需要的朋友可以参考下

前言

在python存在一个简单易用的绘图库,它就是 turtle

Python 的 turtle 模块是一种简单易用的绘图库,适合用于绘制图形和动画。它以“海龟”(Turtle)作为绘图工具,模拟一只“海龟”在平面上移动,通过命令控制其运动轨迹来绘制各种图案。

Turtle 特别适合初学者学习编程逻辑和图形学,因为它的接口直观,操作简单。
在本篇博客,我会带领着大家学会 turtle库的使用。

1. turtle的常用功能

1.1 基本操作

方法描述
turtle.forward(x)向前移动 x 像素
turtle.backward(x)向后移动 x 像素
turtle.left(angle)向左旋转指定角度(单位:度)
turtle.right(angle)向右旋转指定角度(单位:度)
turtle.penup()提起画笔(移动时不绘制轨迹)
turtle.pendown()放下画笔(移动时绘制轨迹)
turtle.goto(x, y)移动到坐标 (x, y)
turtle.speed(speed)设置绘图速度,范围从 0(最快)到 10
turtle.hideturtle()隐藏海龟图标
turtle.showturtle()显示海龟图标

1.2 设置画笔属性

方法描述
turtle.color(color)设置画笔颜色,支持字符串如 "red" 或 RGB
turtle.fillcolor(color)设置填充颜色
turtle.begin_fill()开始填充区域
turtle.end_fill()结束填充区域
turtle.pensize(width)设置画笔宽度

1.3 设置窗口属性

方法描述
turtle.title(title)设置窗口标题
turtle.bgcolor(color)设置窗口背景颜色
turtle.setup(width, height)设置窗口大小
turtle.reset()重置画布和海龟状态
turtle.clearscreen()清除整个屏幕

以上的功能,只要用代码敲遍就会完全明白了,下面让我们来看具体的案例吧。

2. 绘图操作

要想学会turtle库最好的方式就是直接上手,所以介绍函数时不会浪费过多的时间,只要用这些函数实现完以下简单的图形后,对于turtle的操作也就大概没有问题了。

2.1 正方形绘制

要绘制正方形,肯定需要知道正方形的图形,相信大家对于这个肯定是没有问题的,拥有4条相同的边且4个角都为直角。这也就是绘制正方形的关键,因为turtle是模拟一只海龟的的移动,只要让海龟的移动轨迹满足条件就可以了。

海龟先向前移动x单位的距离,然后向右转再移动x单位的距离,然后在右转移动x单位的距离,最后在右转移动x单位的距离。因为操作涉及了重复,我们可以将其写为循环。

import turtle #导包

t = turtle.Turtle()#先创建对象
turtle.title('我是一个正方形哦~')# 为画布添加标题(可不写)
for _ in range(4):
    t.forward(100) #向前移动100个单位的距离
    t.right(90) #开始向右转90度
    
turtle.done() #保持画布的存在

让我们来看看效果吧

可以发现,初始时海龟是咋画布的正中间的,而且海龟的屏幕向右,这点需要记得呢。

那么是否可以移动海龟,不让海龟从初始(0,0)开始移动。

当然也是可以的,可以使用turtle.goto(),不过当你使用时,你一定会发现,怎么海龟还是移动过去的,而且还有移动痕迹,这时候就需要我们去把这些痕迹去除了,用到函数turtle.penupturtle.pendown,如果现在我还不想看到那个海龟turtle.hideturtle()这个函数就有作用了。

同时我们还可以控制速度turtle.speed()以下是功能大杂烩的演示:

import turtle

turtle.title('功能测试')

t = turtle.Turtle()
t.speed(0) # 设置速度

t.hideturtle() #隐藏海龟
t.penup() #提起画笔
t.goto(-300,300) #跳转到指定坐标
t.pendown() #放放下画笔
t.speed(1) #重新设置速度
for _ in range(4):
    t.forward(100)
    t.right(90)
turtle.done()

要注意的是关于turtle.speed(n)函数,n为0是最快的,然后从1开始速度依次增加。

2.2 正多边形绘制

有了正方形的前车之鉴,多边形的绘制就非常简单了,比较正方形就正四边形。

import turtle

turtle.title('是多边形哦~')

# 以下的goto函数是为了方便我截图
t = turtle.Turtle()
t.speed(0)
t.penup()
t.goto(-350,350)
t.pendown()

sides = 6 #正多边形的边数
for _ in range(sides):
    t.forward(100)
    t.right(360/sides) #因为是正六边形,所以旋转60度
turtle.done()

如果我把边数无限制的增加,是不是就得到了一个圆呢?

近似看成圆,这其实是正360边形。

难道在turtle中绘制圆,只能这样绘制正多边形吗,也不是,下一个图形就圆的绘制了。

2.3 同心圆的绘制

绘制同心圆前,圆的绘制还是要知道的。

import turtle

turtle.title('我是圆哦~')

t = turtle.Turtle()
t.speed(0)
t.penup()
t.goto(-250,200)
t.pendown()

t.circle(100) #绘制一个半径为100单位的圆

turtle.done()

接下来就同心圆的绘制,因为是同心圆,这些圆的圆心都是相同的但是半径不同。那么只要我写一个循环让圆的半径不断地变大集就可以了,为了效果更丰富,我会让它们的颜色都不同

import turtle
import random
arr = ['red','green','pink','gold','blue','yellow','black','orange']
n = len(arr)
turtle.title('是同心圆呢~')
t = turtle.Turtle()

t.speed(10)

for radius in range(20,101,20):
    t.penup()
    t.goto(0,-radius) #移动到新圆的起点
    t.pendown()
    t.color(arr[random.randint(0,n-1)])
    t.circle(radius)

turtle.done()

画了这么多的图形。还没有画一个填充图形呢,下面让我们开始填充图形的绘制吧

2.4 填充图形的绘制

其实填充图形,只要加两个函数就可以了,以正方形来举例吧

import turtle

turtle.title('要padding了~')

t = turtle.Turtle()
t.speed(0) # 设置速度
t.hideturtle() #隐藏海龟
t.penup() #提起画笔
t.goto(-300,300) #跳转到指定坐标
t.pendown() #放放下画笔
t.fillcolor('blue') #设置填充颜色
t.begin_fill()
t.speed(1) #重新设置速度
for _ in range(4):
    t.forward(100)
    t.right(90)
t.end_fill()
turtle.done()

2.5 五角星的绘制

画到现在,turtle库的内容,大家应该都是没有问题了,可能更重要的就是图形怎么画。就像下面的五角星,你知道五角星怎么画吗?
其实和正多边形没什么区别,找到角度就可以了。

import turtle

turtle.title('我是五角星~')
t = turtle.Turtle()
t.speed(0)
t.penup()
t.goto(-300,300)
t.pendown()

for _ in range(5):
    t.forward(100)
    t.right(144) #五角星的角度

turtle.done()

2.6 螺旋图案的绘制

螺旋图形的绘制,重在螺旋,对于角度要使用不规则的角度,否则就无法形成螺旋了。

import turtle

t = turtle.Turtle()
t.speed(0)  # 设置最快速度

colors = ["red", "blue", "green", "orange", "purple"]

for i in range(1000):
    t.color(colors[i % len(colors)])  # 循环使用颜色
    t.forward(i * 2)
    t.right(91)  # 稍微不规则的角度,形成螺旋图案

turtle.done()

效果还是非常不错了

如果我们使用的90度的规则角度呢?

有点晕了~

3. turtle的进阶操作

  • 通过turtle.shape()改变海龟的形状。
turtle.shape("turtle")  # 改为乌龟形状
turtle.shape("circle")  # 改为圆形
turtle.shape("triangle")  # 改为三角形
  • 支持简单的事件响应(如键盘和鼠标事件)
import turtle

def move_forward():
    t.forward(50)

def turn_left():
    t.left(45)

t = turtle.Turtle()
screen = turtle.Screen()

screen.listen()  # 开始监听事件
screen.onkey(move_forward, "Up")  # 按上键移动
screen.onkey(turn_left, "Left")  # 按左键旋转

turtle.done()

4. 总结

Python 的 turtle 库是一个简单易用的绘图工具,它让你可以通过编写代码,像小乌龟一样在屏幕上自由创作。无论是几何图形、艺术图案,还是动态动画,turtle 都能轻松实现。它不仅是初学者学习编程逻辑和图形学的绝佳入门选择,也是开发者探索创意编程的有趣工具。

到此这篇关于Python绘图魔法之如何用turtle库的文章就介绍到这了,更多相关Python绘图turtle库内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python3实现SMTP发送邮件的实战指南

    Python3实现SMTP发送邮件的实战指南

    ,本文详细介绍 Python3 借助smtplib和email库实现 SMTP 邮件发送的方法,从基础到实战覆盖多场景,先讲解 SMTP 协议定义及两核心库功能,再说明创建 SMTP 对象和使用sendmail方法的核心语法与参数,需要的朋友可以参考下
    2025-10-10
  • python中创建一个包并引用使用的操作方法

    python中创建一个包并引用使用的操作方法

    python包在开发中十分常见,一般通过导入包含特定功能的python模块包进行使用。当然,也可以自己创建打包模块,然后发布,安装使用,这篇文章主要介绍了python中如何创建一个包并引用使用,需要的朋友可以参考下
    2022-08-08
  • Python使用pymupdf实现PDF加密

    Python使用pymupdf实现PDF加密

    这篇文章主要介绍了如何使用 Python 和 wxPython 库创建一个简单的图形用户界面(GUI)应用程序,用于对 PDF 文件进行加密,感兴趣的小伙伴可以了解下
    2023-08-08
  • python实现给微信公众号发送消息的方法

    python实现给微信公众号发送消息的方法

    这篇文章主要介绍了python实现给微信公众号发送消息的方法,结合实例形式分析了Python针对微信公众号接口操作的相关技巧,需要的朋友可以参考下
    2017-06-06
  • selenium+PhantomJS爬取豆瓣读书

    selenium+PhantomJS爬取豆瓣读书

    这篇文章主要为大家详细介绍了selenium+PhantomJS爬取豆瓣读书,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-08-08
  • python中pivot()函数基础知识点

    python中pivot()函数基础知识点

    在本篇内容里小编给大家分享的是一篇关于python中pivot()函数基础知识点内容,对此有兴趣的朋友们可以参考学习下。
    2021-01-01
  • 使用python字典统计CSV数据的步骤和示例代码

    使用python字典统计CSV数据的步骤和示例代码

    为了使用Python字典来统计CSV数据,我们可以使用内置的csv模块来读取CSV文件,并使用字典来存储统计信息,以下是一个详细的步骤和完整的代码示例,需要的朋友可以参考下
    2024-12-12
  • python 实现logging动态变更输出日志文件名

    python 实现logging动态变更输出日志文件名

    这篇文章主要介绍了python 实现logging动态变更输出日志文件名的案例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-03-03
  • python异步实现定时任务和周期任务的方法

    python异步实现定时任务和周期任务的方法

    今天小编就为大家分享一篇python异步实现定时任务和周期任务的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-06-06
  • python 装饰器的使用与要点

    python 装饰器的使用与要点

    python的装饰器本质上是一个Python函数,它可以让其他函数在不需要做任何代码变动的前提下增加额外功能;装饰器的返回值也是一个函数对象。简单的说装饰器就是一个用来返回函数的函数
    2021-05-05

最新评论