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海龟绘图内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • django drf框架自带的路由及最简化的视图

    django drf框架自带的路由及最简化的视图

    这篇文章主要介绍了django-drf框架自带的路由以及最简化的视图,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-09-09
  • Python读取实时数据流示例

    Python读取实时数据流示例

    今天小编就为大家分享一篇Python读取实时数据流示例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-12-12
  • python中的extend功能及用法

    python中的extend功能及用法

    Python中的extend()方法用于在列表末尾一次性追加另一个列表中的多个值,这篇文章主要介绍了python中的extend功能及用法,需要的朋友可以参考下
    2023-07-07
  • 详解Python 3D引擎Ursina如何绘制立体图形

    详解Python 3D引擎Ursina如何绘制立体图形

    Python有一个不错的3D引擎——Ursina。本文就来手把手教你认识Ursina并学会绘制立体图形,感兴趣的小伙伴可以跟随小编一起学习一下
    2023-01-01
  • python列表操作实例

    python列表操作实例

    这篇文章主要介绍了python列表操作方法,实例分析了Python针对列表操作的插入、删除等各种操作技巧,需要的朋友可以参考下
    2015-01-01
  • 动态规划之矩阵连乘问题Python实现方法

    动态规划之矩阵连乘问题Python实现方法

    这篇文章主要介绍了动态规划之矩阵连乘问题Python实现方法,较为详细的分析了矩阵连乘问题的概念、原理并结合实例形式分析了Python相关实现技巧,需要的朋友可以参考下
    2017-11-11
  • Micropython固件使用Pico刷固件并配置VsCode开发环境的方法

    Micropython固件使用Pico刷固件并配置VsCode开发环境的方法

    这篇文章主要介绍了Micropython固件使用Pico刷固件并配置VsCode开发环境的方法,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2021-07-07
  • 让Python脚本暂停执行的几种方法(小结)

    让Python脚本暂停执行的几种方法(小结)

    这篇文章主要介绍了让Python脚本暂停执行的几种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-07-07
  • 详解Python异常处理中的Finally else的功能

    详解Python异常处理中的Finally else的功能

    本篇文章主要介绍了详解Python异常处理中的Finally else的功能,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-12-12
  • Python中flatten( ),matrix.A用法说明

    Python中flatten( ),matrix.A用法说明

    这篇文章主要介绍了Python中flatten( ),matrix.A用法说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-07-07

最新评论