Turtle 绘图
海龟绘图 (Turtle Graphics),原本是发明给儿童学习编程的。现在也移植到许多高级语音中,Python 也内置了 turtle 库,基本上能够复原 Turtle Graphics 的功能。
先看看如何用 turtle 进行绘图:
# 导入turtle包的所有内容:
from turtle import *
# 设置笔刷宽度:
width(4)
# 前进:
forward(200)
# 右转90度:
right(90)
# 笔刷颜色:
pencolor('red')
forward(100)
right(90)
pencolor('green')
forward(200)
right(90)
pencolor('blue')
forward(100)
right(90)
# 调用done()使得窗口等待被关闭,否则将立刻关闭窗口:
done()
上面示例中实现的效果如下图:
在这个例子中,就是指挥海龟移动,而移动的轨迹就是绘制的线条。在这里,绘制矩形,就是让海龟前进,右转 90 度,反复 4 次。
上面的代码中,width()
用来设置画笔的宽度, pencolor()
用来设置画笔颜色。还有更多的操作可以参考官网的说明:
https://docs.python.org/3.7/library/turtle.html#turtle-methods
示例中,最后的有个 done()
函数,这个函数主要的作用是阻塞,让窗口进入消息循环,等待被关闭。若是没有调用这个参数,程序会在图形绘制完后直接关闭窗口。
turtle 的函数都非常简单。当需要使用时,可以直接在官网进行查询印证使用。
在这里,也尝试使用 turtle 绘制 HELLO WORLD
字样。
# -*- coding: utf-8 -*-
"""
@Time: 2020/3/15 21:01
@File: turtle_.py
@Author: Damon
@Contact: yiluolion@126.com
"""
# put the import lib here
from turtle import *
width(4)
pu()
goto(-450, 0)
pd()
rt(90)
fd(80)
pu()
rt(180)
fd(40)
rt(90)
pd()
fd(60)
pu()
lt(90)
fd(40)
pd()
rt(180)
fd(80)
pu()
goto(-370, 0)
lt(90)
pd()
fd(60)
pu()
rt(180)
fd(60)
lt(90)
pd()
fd(80)
lt(90)
fd(60)
pu()
goto(-370, -40)
pd()
fd(60)
pu()
goto(-290, 0)
rt(90)
pd()
fd(80)
lt(90)
fd(60)
pu()
goto(-210, 0)
rt(90)
pd()
fd(80)
lt(90)
fd(60)
pu()
goto(-130, 0)
pd()
fd(60)
rt(90)
fd(80)
rt(90)
fd(60)
rt(90)
fd(80)
pu()
goto(0, 0)
rt(160)
pd()
fd(82)
lt(140)
fd(82)
rt(140)
fd(82)
lt(140)
fd(82)
pu()
goto(130, 0)
rt(70)
pd()
fd(60)
rt(90)
fd(80)
rt(90)
fd(60)
rt(90)
fd(80)
pu()
goto(210, 0)
rt(180)
pd()
fd(80)
pu()
rt(180)
fd(80)
rt(90)
pd()
fd(50)
rt(45)
fd(14.14)
rt(45)
fd(20)
rt(45)
fd(14.14)
rt(45)
fd(50)
# fd(60)
# rt(90)
# fd(40)
# rt(90)
# fd(60)
pu()
rt(180)
fd(40)
pd()
rt(60)
fd(44.72)
pu()
goto(290, 0)
rt(30)
pd()
fd(80)
lt(90)
fd(60)
pu()
goto(370, 0)
rt(90)
pd()
fd(80)
pu()
rt(180)
fd(80)
rt(90)
pd()
fd(50)
rt(45)
fd(14.14)
rt(45)
fd(60)
rt(45)
fd(14.14)
rt(45)
fd(50)
done()
上面的例子中,rt()
表示右转,lt()
表示左转,fd()
表示前进,pu()
表示提起画笔,pd
表示落下画笔。
下面看看实现的效果:
turtle 使用非常简单。如果想要绘制一些图形,需要花时间的部分主要是设计 turtle 的走向。如果觉得有意思的话,也可以尝试一下。
以上就是本篇的主要内容
欢迎关注微信公众号《书所集录》
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。