Python海龟绘图详解

 更新时间:2021年12月16日 10:42:39   作者:是Dream呀  
python2.6版本中后引入的一个简单的绘图工具,叫做海龟绘图(Turtle Graphics),出现在1966年的Logo计算机语言。海龟绘图(turtle库)是python的内部模块,使用前导入即可。本文就带大家深入了解一下海龟绘图,快来跟随小编一起学习吧

hello,大家好,我是Dream。最近有小伙伴私信我,说让我出一篇海龟画图,这其实我也不太能弄得明白,那在这里我和大家一块梳理一下!记得给我点赞收藏哟~

一.画笔和屏幕

这里单独拿开一个讲的话会很抽象,因为一个是线,另一个是面,面是线的载体,线是面的内容

首先大家先运行这一段代码:

import turtle#调用turtle库
turtle.title("绘制第一只海龟")#设置窗口名称
print('开始了')
turtle.forward(100)
turtle.left(30) #左转弯和右转弯一个意思不用写
turtle.forward(100)

我们可以看到运行结果是这个:

你会发现他只会存在一瞬间,画完就不见了

我们总会想让美好的瞬间多存在一会,这个时候我们往往会用到time这个库

让我们看一看新的代码:

import turtle
import time
turtle.title("绘制第一只海龟")
print('let's go')
turtle.forward(100)
turtle.left(30) #左转弯和右转弯一个意思不用写
turtle.forward(100)
time.sleep(10)#这里调用了time库,sleep顾名思义,睡眠的意思,括号里是秒数,就是你想让他停留几秒的意思

现在我们的画面便可以停留10s了

当然不用time也是可以的,上代码:

import turtle

turtle.title("绘制第一只海龟")
print('开始了')
turtle.forward(100)
turtle.left(30) #左转弯和右转弯一个意思不用写
turtle.forward(100)
turtle.exitonclick()  # 实现单击鼠标左键时关闭窗口

或者你可以换成 turtle.done() 让画面一直停留

说了折磨多,那屏幕是怎么产生的呢?

来直接看代码:

turtle.setup(width=400, height=300, startx=None, starty=None)

这里是设置屏幕的大小,就像上一段代码一样,如果你没有设置大小的话,那屏幕就是默认值。

此处:

width:设置窗口的宽度,默认为屏幕的 50%。

height:设置窗口的高度,默认为屏幕的 50%。

startx:窗口距离屏幕左边缘多少距离,负值表示距离右边缘,None 表示窗口水平居中。

starty:窗口距离屏幕上边缘多少距离,负值表示距离下边缘,None 表示窗口垂直居中。

当然如果你觉得屏幕背景白色太单调的话你也可以设置一下他的背景颜色或者插入自己的图片(但图片大小不一,想要设置的好看的话,需要自己调节屏幕大小尺寸)

话不多说,直接上代码:

import turtle

turtle.title("绘制第一只海龟")
turtle.bgcolor("green")#这里是设计背景颜色
turtle.bgpic(picname='./imgs/xu.gif')#这里是插入图片,图片必须放在同一路径文件下
#图片格式必须为gif!!!,不然无法识别
turtle.forward(100)
turtle.left(30) #左转弯和右转弯一个意思不用写
turtle.forward(100)
turtle.done()  # 海龟绘图程序的结束语句(开始主循环)turtle.done()  # 海龟绘图程序的结束语句(开始主循环)


这是我自己的背景:

还行啊吧,我的眼光还是不错的哟~

关于屏幕知识也就这些了,接下来说一下画笔:

拿我们刚才写的代码来说:

import turtle

turtle.title("绘制第一只海龟")
turtle.bgcolor("green")#这里是设计背景颜色
turtle.bgpic(picname='./imgs/xu.gif')
turtle.forward(100)
turtle.left(30) #左转弯和右转弯一个意思不用写
turtle.forward(100)
turtle.done()  

forward表示向前走,left向左拐多少度,back向后,right向右拐多少度,这是最基本的,看点稍微高级一点的:

import turtle
import time
turtle.goto(100, 100)
turtle.goto(-100, 100)
turtle.goto(100, -100)
turtle.goto(-100, -100)
turtle.goto(0, 0)

turtle.penup()#这里指从0开始抬笔,继续路线,只是不画了
turtle.forward(100)
turtle.right(90)
turtle.pendown()#落笔继续画
turtle.color("red")#画笔颜色
turtle.goto(100, -100)
time.sleep(5)

这里:初始位置都是0,就是屏幕中央

放下笔:pendown()

抬起笔:penup()

到指定坐标:goto(x, y)

颜色:color(“cc”)

画笔的颜色主要有:

黄色:yellow

红色:red

蓝色:blue

绿色:green

粉色:pink

紫色:purple

灰色:grey

橘色:orange

那如果你觉得画笔太细咋办,来上代码:

turtle.width(5)

这个帮你调粗细,初始值为1

如果你觉得速度不对呢,来上代码:

turtle.speed(0)  # 设置画笔的速度,0为最快

其中0最快,直接出结果,1最慢,然后从2~10依次加快

那这些就是你要掌握的基础知识了~

二.实战与应用

1.写字

如何在上面写字呢:来来来上代码:

turtle.write( arg, move=False, align="left", font=("Arial", 8, "normal"))

arg:必选参数,用于指定要输出的文字内容,该内容会输出到当前海龟光标的所在位置。

move:可选参数,用于指定是否移动画笔到文本的右下角**,默认为False (不移动)。**

align:可选参数,用于指定文字的对齐方式,其参数值为left(居左)、center(居中)或者right(居右)中的任意一个,默认为 left。

font:可选参数,用于指定字体、字号和字形,通过一个三元组(字体,字号,字形)指定。

说明:字形可设置的值为normal(表示正常)、bold(粗体)、italic(斜体)、underline(下划线)等。

上代码:

import turtle  # 导入海龟绘图模块

turtle.color("green")  # 填充颜色
turtle.up()  # 抬笔
turtle.goto(-300,0)
turtle.down()  # 落笔
turtle.write("徐以鹏比易烊千玺帅亿点。", font=("宋体", 18, "normal"))
turtle.done()  # 海龟绘图程序的结束语句(开始主循环)

那就是这个效果了~

2.用于交互式写字

import turtle  # 导入海龟绘图模块
turtle.color("green")  # 填充颜色
word = turtle.textinput("温馨提示:", "请输入要打印的文字")  # 弹出输入对话框
turtle.write(word, True, font=("宋体", 18, "italic"))  # 输出文字
turtle.done()  # 海龟绘图程序的结束语句(开始主循环)

3.自己控制方向

import turtle


def move():
    turtle.left(90)
    turtle.forward(100)


turtle.listen()#监听鼠标
turtle.onkey(move, "w")#按w进行走动
turtle.done()
import turtle


def move():
    turtle.forward(2)


turtle.listen()
turtle.onkeypress(move, "w")#一直按w才走
turtle.done()

4.拖动小海龟画图

ondrag():表示处理鼠标拖动事件

默认值为1(鼠标左键)、2(鼠标中键,即按下滑轮)、3(鼠标右键)

import turtle

t = turtle.Turtle()
t.shape("turtle")
t.color("green")
turtle.listen()


def fun(x, y):
    t.pendown()
    t.goto(x, y)


t.ondrag(fun, 1)
turtle.done()

5.规定时间后开始画

ontimer() 方法来实现一个计时器,用于达到指定时间时,执行一个操作 

import turtle


def fun():  # 绘制正方形
    for i in range(4):
        turtle.forward(100)
        turtle.left(90)


turtle.getscreen().ontimer(fun, 3000)  # 设置计时器
turtle.done()  # 海龟绘图程序的结束语句(开始主循环) 

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

相关文章

  • Pygame实战练习之纸牌21点游戏

    Pygame实战练习之纸牌21点游戏

    21点想必是很多人童年时期的经典游戏,我们依旧能记得抱个老人机娱乐的场景,下面这篇文章主要给大家介绍了关于如何利用python写一个简单的21点小游戏的相关资料,需要的朋友可以参考下
    2021-09-09
  • Python根据站点列表绘制站坐标全球分布图的示例

    Python根据站点列表绘制站坐标全球分布图的示例

    这篇文章主要介绍了Python根据站点列表绘制站坐标全球分布图,输入站点列表文件、snx全球站点坐标文件,本文通过示例代码给大家介绍的非常详细,需要的朋友可以参考下
    2021-12-12
  • 总结几个非常实用的Python库

    总结几个非常实用的Python库

    Python一直被自称“batteries included”,就是因为内置了许多非常有用的模块,无需额外安装和配置,即可直接使用. 除了内建的模块外,Python还有大量的第三方模块,直接使用pip安装即可使用.下面给大家简单介绍几个Python非常实用的自带库和第三方库,需要的朋友可以参考下
    2021-06-06
  • Python中多个数组行合并及列合并的方法总结

    Python中多个数组行合并及列合并的方法总结

    下面小编就为大家分享一篇Python中多个数组行合并及列合并的方法总结,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-04-04
  • Django多数据库的实现过程详解

    Django多数据库的实现过程详解

    这篇文章主要介绍了Django多数据库的实现过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-08-08
  • Python中类和对象的绑定及非绑定方法详解

    Python中类和对象的绑定及非绑定方法详解

    类中定义的方法大致可以分为两类:绑定方法和非绑定方法。其中绑定方法又可以分为绑定到对象的方法和绑定到类的方法。本文就来聊聊类和对象的绑定及非绑定方法吧
    2023-03-03
  • 如何卸载python插件

    如何卸载python插件

    在本篇文章里小编给大家分享了关于python插件如何卸载的相关文章,需要的朋友们可以参考下。
    2020-07-07
  • 使用Python进行数据可视化实现引人注目的视觉效果

    使用Python进行数据可视化实现引人注目的视觉效果

    这篇文章主要介绍了使用Python进行数据可视化实现引人注目的视觉效果,您将了解基本的数据可视化概念,以及如何创建各种引人注目的图表和图形,从而更好地理解和呈现数据
    2023-04-04
  • 解决python的空格和tab混淆而报错的问题

    解决python的空格和tab混淆而报错的问题

    这篇文章主要介绍了解决python的空格和tab混淆而报错的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-02-02
  • Python实现处理Excel数据并生成只读模式

    Python实现处理Excel数据并生成只读模式

    这篇文章主要为大家详细介绍了如何使用 Python 处理 Excel 数据,并生成只读模式的 Excel 文档,文中的示例代码简洁易懂,有需要的小伙伴可以参考下
    2023-11-11

最新评论