首页 > 编程语言 >画个心,写个花!Python Turtle库带你玩转创意绘图!

画个心,写个花!Python Turtle库带你玩转创意绘图!

时间:2024-09-29 20:49:41浏览次数:3  
标签:Turtle turtle goto 画笔 Python 画布 设置 画个 绘制

文章目录


前言

Python 的 turtle 库是一种简单易用的绘图工具,非常适合初学者学习编程。本文将详细介绍如何使用 turtle 库进行画布设置、画笔属性设置、画笔的移动与控制函数,并结合两个实战案例,包括“花”字绘制和心型图案的绘制。

在这里插入图片描述


一、Turtle 库基础介绍

turtle 库模拟了一个小乌龟,作为一个画笔在画布上绘制各种图形。该库中的大部分操作是通过控制这只乌龟(即画笔)来实现的,用户可以指定乌龟的移动方向、画笔颜色、线条粗细等。
安装与引入
通常情况下,Python 内置了 turtle 库,无需额外安装,直接引入即可使用:

import turtle

二、画布设置

在开始绘图前,我们需要先设置画布的大小,画布是turtle库展开绘图的区域,可以使用setup()函数来设置画布的大小和位置。turtle.setup() 函数用于设定画布的宽度和高度。

turtle.setup(width=1000, height=700)  # 设置画布大小为宽1000像素,高700像素

在这里插入图片描述

初始时,小海龟位于画布的正中央,即坐标系中的(0,0)位置,向水平向右方向行进
在这里插入图片描述


三、画笔属性设置

Turtle 提供了丰富的画笔属性控制函数,包括画笔颜色、粗细、形状等。

1.画笔颜色设置

turtle.pencolor("color"): 用于设置画笔颜色。颜色可以是颜色名或 RGB 值

turtle.pencolor("pink")  # 设置画笔颜色为粉色
turtle.pencolor((255,192,203)) # 设置画笔颜色为粉色

在这里插入图片描述

2.画笔粗细与速度设置

turtle.pensize(size): 设置画笔的粗细

turtle.pensize(20)  # 设置画笔粗细为20像素

turtle.speed(speed):设置画笔的速度,speed是指画笔的速度,数字越大速度越快

turtle.speed(3)

3.画笔形状设置

turtle.shape() 可以改变画笔的形状,如 turtlearrowcircle

turtle.shape("turtle")  # 将画笔形状设置为乌龟形状

在这里插入图片描述


四、画笔移动函数

Turtle 提供了丰富的移动控制函数,可以让画笔在画布上按照指定的方向和距离进行绘制。

turtle.penup(): 抬起画笔,移动时不绘制。
turtle.pendown(): 放下画笔,移动时绘制。
turtle.forward(distance): 向前移动指定的像素距离。
turtle.backward(distance): 向后移动指定的像素距离。
turtle.goto(x, y): 将画笔移动到指定的坐标。
turtle.setheading(angle): 将画笔的朝向设置为指定角度。
turtle.circle(radius, angle): 绘制指定半径和角度的圆或弧。

在这里插入图片描述

turtle库中的角度坐标体系,以正东方向为绝对0度,即小海龟初始爬行方向。角度坐标体系是绝对方向体系,与小海龟爬行的当前方向无关,可以用于改变小海龟前进方向。
在这里插入图片描述


五、画笔控制函数

画笔控制函数可以实现填充图形、显示画笔和隐藏画笔等功能。

在这里插入图片描述


六、实战案例一:“花”字绘制

接下来,我们通过一个实战案例,使用 turtle 库绘制一个“花”字的图形,你们也可以绘制属于自己的姓
在这里插入图片描述

import turtle

turtle.setup(width=1000, height=700)
turtle.pencolor("pink")
turtle.shape("turtle")
turtle.pensize(20)

# 草字头
turtle.penup()
turtle.goto(-250, 200)
turtle.pendown()
turtle.forward(500)
turtle.backward(350)
turtle.setheading(90)
turtle.forward(100)
turtle.backward(200)
turtle.forward(100)
turtle.setheading(0)
turtle.forward(200)
turtle.setheading(90)
turtle.forward(100)
turtle.backward(200)
turtle.forward(100)

# 左下角
turtle.penup()
turtle.goto(-100,0)
turtle.pendown()
turtle.goto(-250,-200)
turtle.penup()
turtle.goto(-150,-100)
turtle.pendown()
turtle.backward(150)

# 右下角
turtle.penup()
turtle.goto(250,0)
turtle.pendown()
turtle.goto(0,-100)

turtle.penup()
turtle.goto(100,0)
turtle.pendown()
turtle.backward(250)
turtle.setheading(0)
turtle.forward(200)
turtle.setheading(90)
turtle.forward(75)


# 关闭画布
turtle.hideturtle()
turtle.exitonclick()

七、实战案例二:心型图案绘制

接下来,我们通过第二个实战案例,使用 turtle 绘制一个简单的心型图案。
在这里插入图片描述

import turtle
turtle.setup(600,400)          #设置画布大小为宽600,高400
turtle.pensize(2)                  #设置画笔宽度为2
turtle.penup()                      #抬起画笔,不绘制,准备调整画笔位置
turtle.goto(0,90)                  #将画笔挪至坐标(0,90)处
turtle.left(135)                      #逆时针转动画笔135度
turtle.begin_fill()                  #准备开始填充图形
turtle.color("pink","pink")    #画笔和填充颜色均设置为粉色
turtle.pendown()                 #准备绘制图形
turtle.circle(63.65,180)        #绘制半径为63.65,角度为180的左侧半圆
turtle.goto(0,-90)                #边绘制边移动画笔至(0,-90)
turtle.goto(90,0)                  #边绘制边移动画笔至(90,0)
turtle.setheading(45)           #调整画笔方向为绝对方向45度
turtle.circle(63.65,180)         #绘制半径为63.65,角度为180的右侧半圆
turtle.end_fill()                     #填充图形完成
turtle.hideturtle()                 #隐藏画笔形状
turtle.exitonclick()                #不关闭画布,可以手动关闭画布

总结

通过本文,我们详细介绍了如何使用 Python 的 turtle 库进行画布设置、画笔属性设置、画笔移动与控制,并结合两个实战案例“花”字绘制和心型图案绘制,展示了该库在绘图中的应用。turtle 库作为初学者友好的工具,不仅能让我们轻松上手编程绘图,还能激发我们对图形化编程的兴趣。希望这篇文章能够帮助你掌握基本的 turtle 绘图技巧,并且能够激发你创作出更多有趣的图形作品。如果你有任何疑问或建议,欢迎在评论区留言讨论

标签:Turtle,turtle,goto,画笔,Python,画布,设置,画个,绘制
From: https://blog.csdn.net/Huahua_1223/article/details/142642641

相关文章

  • Python 面向对象编程基础
    面向对象编程(Object-OrientedProgramming,OOP)是一种编程范式,它将数据和操作数据的方法(函数)组合在一起,形成一个“对象”。Python是一种支持面向对象编程的语言,本文将介绍Python中面向对象编程的基础知识。类与对象在面向对象编程中,类(Class)是创建对象的蓝图或模板。它定......
  • micropython +ESP32+ sht30 温湿度模块
    SHT30  1)查找SHT30芯片资料  https://www.szlcsc.com2)根据芯片资料,查得   地址为0x44或0x45    选 MeasurementCommandsforSingleShotDataAcquisitionMode,命令为 0x2c103)连线 SHT30      ESP32     D1(SCL)    4......
  • Python和C++及MATLAB距离相关性生物医学样本统计量算法及数据科学
    ......
  • conda创建并切换python虚拟环境
    项目的不同模块可能需要用到一个python库的不同版本,为避免冲突,需要通过conda构建多个python虚拟环境,来安装不同版本的库condaenvlist#列出所有环境condacreate--namepy310#创建环境py310condaactivatepy310#切换到该环境condainstallpython=3.10#安装python......
  • Python集合(set)
    集合(set)是一个无序的不重复元素序列。集合中的元素不会重复,并且可以进行交集、并集、差集等常见的集合操作。1.创建集合可以使用大括号{}创建集合,元素之间用逗号,分隔,或者也可以使用set()函数创建集合。注意:创建一个空集合必须用set()而不是{},因为{}是用来......
  • 在docker安装Python环境提供给其他docker使用
    1.在宿主机新建一个目录2.在app目录下新建一个Dockerfile文件本文永久更新地址:1.在宿主机新建一个目录在宿主机上新建一个目录如app/,在app目录里面导入项目需要依赖的包在项目根目录下输入命令,导出python项目所有的依赖包pipfreeze>requirements.txt把导出的re......
  • Python NumPy 数据清洗:高效处理数据异常与缺失
    PythonNumPy数据清洗:高效处理数据异常与缺失文章目录PythonNumPy数据清洗:高效处理数据异常与缺失一数据预处理的常见问题二待处理的数据三数据预处理四清洗数据1查看第一列学号2查看第二列年龄结果解析函数解释1)`~np.isnan(data[:,1])`2)`data[~np.isnan(data......
  • The Zen of Python/Python之禅(import this)
    经验丰富的程序员倡导尽可能避繁就简。Python社区的理念都包含在TimPeters撰写的“Python之禅”中,要了解这些有关编写优秀Python代码的指导原则,只需在解释器中执行命令importthis。>>>importthisTheZenofPython,byTimPetersBeautifulisbetterthanugly.Explic......
  • 使用python语言进行文件复制
    importos.path#来源文件sc_file=r"D:\py\test1"#目标文件des_file=r"D:\py\test2"#定义函数defcopy(sc,des):#判断来源文件是否为文件夹ifos.path.isdir(sc):#列出当前文件夹下的所有文件files=os.listdir(sc)#......
  • 计算机毕业设计推荐-基于python的救灾应急物资管理系统 物资捐赠管理系统【源码/文档/
    ......