文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Python海龟绘图详解

2024-04-02 19:55

关注

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

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯