海龟绘图的简易教程
来源:简书 发布时间:2020-05-22 13:34:59

0、前言

turtle 是 python 内置的一个比较有趣味的模块,俗称 海龟绘图,它是基于 tkinter 模块打造,提供一些简单的绘图工具,海龟作图最初源自 20 世纪 60 年代的 Logo 编程语言,之后一些很酷的 Python 程序员构建了 turtle 库,让其他程序员只需要 import turtle,就可以在 Python 中使用海龟作图。

1、基本功能介绍

在海龟作图中,我们可以编写指令让一个虚拟的(想象中的)海龟在屏幕上来回移动。这个海龟带着一只钢笔,我们可以让海龟无论移动到哪都使用这只钢笔来绘制线条。通过编写代码,以各种很酷的模式移动海龟,我们可以绘制出令人惊奇的图片。使用海龟作图,我们不仅能够只用几行代码就创建出令人印象深刻的视觉效果,而且还可以跟随海龟看看每行代码如何影响到它的移动。这能够帮助我们理解代码的逻辑。所以海龟作图也常被用作新手学习 Python 的一种方式。

1.1 Turtle motion (运动控制)

本节中包含了 运动控制 中常用的一些函数

turtle.goto(x,y)

画笔定位到坐标(x,y)

turtle.forward(distance)

向正方向运动 distance 长的距离

turtle.backward(distance)

向负方向运动 distance 长的距离

turtle.right(angle)

向右偏 angle 度

turtle.left(angle)

向左偏 angle 度

turtle.home()

回到原点

turtle.circle(radius, extent=None, steps=None)

画圆形 radius 为半径,extent 为圆的角度

turtle.speed(speed)

以 speed 速度运动

看到这么多函数肯定已经头大了,我们以例题来讲解。

首先画一个边长为100的正方形,然后再以半径为50画出其3/4圆。

undefined

# 控制画笔的速度

turtle.speed(5)

# 将画笔定位到原点

turtle.goto(0,0)

# 从原点开始,画出一个边长为100的正方形

for i in range(4):

# 正向运动 100 的距离

turtle.forward(100)

# 向右偏 90 度

turtle.right(90)

# 将画笔定位到原点

turtle.home()

# 画出一个半径为100,占3/4的圆

turtle.circle(50,270)

最后得到以下结果:

1.2 Pen control (画笔控制)

本节包含了对画笔的控制函数,常用的如下:

turtle.pendown()

落笔,在此状态下会画出运动的轨迹

turtle.penup()

起笔,在此状态下不会画出运动的轨迹

turtle.pensize(width=None

画笔粗细

turtle.pencolor(*args

画笔颜色

turtle.fillcolor(*args)

填充颜色

turtle.begin_fill()

开始填充

turtle.end_fill()

结束填充

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

写文字

同样,我们以一个例题来讲解。

画一个正方形并填充,最后写一些文字

undefined

# 控制画笔颜色

turtle.pencolor('red')

# 落笔

turtle.pendown()

# 设置填充颜色

turtle.fillcolor('blue')

# 开始填充

turtle.begin_fill()

# 从原点开始,画出一个边长为100的正方形

for i in range(4):

# 正向运动 100 的距离

turtle.forward(200)

# 向右偏 90 度

turtle.right(90)

# 结束填充

turtle.end_fill()

turtle.penup()

turtle.goto(100,-100)

turtle.write('Crossin编程教室')

最后的结果是这样

同时,我们还可以设置画笔打粗细、画笔的速度等属性,

1.2 Window control (视窗控制)

这里有两个常用的函数

turtle.bgcolor(*args)

设置背景颜色

turtle.bgpic(picname=None)

背景图片填充

设置代码如下

undefined

turtle.bgcolor('red')

turtle.bgpic(r'yourpic.png')

2、海龟绘图实例

我们用几个简单的例子讲解海龟绘图的用法。

2.1 用正方形画圆

undefined

import turtle

for i in range(360):

turtle.setheading(i)

for i in range(4):

turtle.forward(100)

turtle.left(90)

360 个正方形每隔 1 度排列,短短几行代码可以生成一个漂亮规则的图形。

2.2 红色的五角星

使用填充功能画出一个大红星

undefined

import turtle

turtle.color('red','red')

turtle.begin_fill()

for i in range(5):

turtle.forward(100)

turtle.right(144)

turtle.end_fill()

结果如图:

2.3 练习题

讲的再多也不如自己动手做一做,我们在网上挑选了几张使用 turtle 做的有意思的图片,自己动手试试吧

作者:zx576

标签: 海龟作图

猜你喜欢

托福口语怎么练 听英文歌有助于提高吗?

托福口语怎么练1、看英语电影:可以借助看英语电影,从而练习托福考试口语和听力是一个不错的办法。...更多

2021-12-03 14:48:51

首批105款违法违规移动应用程序被清理处置

国家网信办今天公布,在开展移动应用程序信息内容乱象专项整治中,首批105款违法违规移动应用程序被...更多

2020-12-09 17:15:09

影子银行来了 是天使还是魔鬼?

蚂蚁上市被叫停、P2P年底清零、信托融资类压降大限将至等,其实背后传递的都是影子银行高峰跌落的信...更多

2020-12-08 16:57:38

特斯拉构成欺诈 销售事故二手车被法院判退一赔三

上周五(12月4日),天津特斯拉车主韩潮在历经一年多的维权后,在其个人微博上宣布,我胜诉了,退一赔...更多

2020-12-07 16:49:52

伯明翰城市大学和伯明翰大学有哪些区别呢?

伯明翰城市大学和伯明翰大学有什么不一样?伯明翰大学始建于1825年,是英国第一所红砖大学!伯明翰城...更多

2020-12-04 11:45:10

罗素集团有哪些学校呢含金量如何呢?与其他大学的

今天就给大家说说罗素大学集团的来源、实力和优势是什么、以及排名情况。01 什么是罗素大学集团?...更多

2020-12-03 14:23:12

康奈尔大学怎么样?康奈尔大学有几个校区?

作为常春藤盟校之一,康奈尔大学提供大约一百项学术研究及专业技术的领域,专业领域包括法学、商业...更多

2020-12-02 15:42:58

Rate my professor是什么?

美国有一个学生极其热衷的网站: Rate my professor 这个网站基于学生们的评价给美国大学的教...更多

2020-12-01 16:02:23

33个俄语字母分别有什么含义?

2014索契冬奥会开幕式开幕式短片萝莉梦游奇幻仙境《33个俄文字母》惊艳世界。通过一位熟睡中的俄罗...更多

2020-11-30 15:03:43

中国网大排名是什么?参考价值大吗?

很多学生在看我报offer的学校后面总跟网大XX名,不懂这是什么信息,我这里重点解释下。因为中国教育...更多

2020-11-27 15:04:16