原标题:【编程课堂】海龟作图

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圆。

# 控制画笔的速度

turtle.speed( 5)

# 将画笔定位到原点

turtle.goto( 0, 0)

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

fori inrange( 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”))

写文字

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

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

# 控制画笔颜色

turtle.pencolor( 'red')

# 落笔

turtle.pendown()

# 设置填充颜色

turtle.fillcolor( 'blue')

# 开始填充

turtle.begin_fill()

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

fori inrange( 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)

背景图片填充

设置代码如下

turtle.bgcolor( 'red')turtle.bgpic( r'yourpic.png') 2、海龟作图实例

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

2.1 用正方形画圆 importturtle

fori inrange( 360): turtle.setheading(i)

fori inrange( 4): turtle.forward( 100) turtle.left( 90)

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

2.2 红色的五角星

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

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

fori inrange( 5): turtle.forward( 100) turtle.right( 144)turtle.end_fill()

结果如图:

2.3 更多案例

讲的再多也不如自己动手做一做,我们在网上挑选了几张使用 turtle 做的有意思的图片,大家可以欣赏并试着做一下。

3、后记

更丰富详细的功能及知识可以参考:

官方文档:https://docs.python.org/3/library/turtle.html

海龟作图—用 Python 绘图:http://www.epubit.com.cn/book/onlinechapter/37788

Simple drawing with turtle:https://opentechschool.github.io/python-beginners/en/simple_drawing.html

Hello, little turtles!:http://openbookproject.net/thinkcs/python/english3e/hello_little_turtles.html

Turtle examples:https://michael0x2a.com/blog/turtle-examples

Easy Designs - Turtle Graphics Python:http://www.instructables.com/id/Easy-Designs-Turtle-Graphics-Python/

近期文章推荐阅读:

欢迎加入

Crossin的编程教室

crossincode.com

新手入门QQ群:553518572

微信请加 crossin11 留言入群(新手/进阶)

请把我们分享给身边爱学习的小伙伴 :)返回搜狐,查看更多

责任编辑:

海龟图c语言编程,【编程课堂】海龟作图相关推荐

  1. 编程海龟图c语言,大家一起来探讨一下乌龟作图用c语言的实现方法

    大家一起来探讨一下乌龟作图用c语言的实现方法 大家好,我们老师让我们做一个乌龟绘图程序,具体要求如下: Basic statement for turtle FD, BK RT, LT PU, PD ...

  2. python语言入门编程猫-编程猫推出海龟编程器,打造Python教育产品矩阵

    原标题:编程猫推出海龟编程器,打造Python教育产品矩阵 芥末堆8月18日讯 今日,编程猫推出Python教育产品矩阵,其中包括海龟编程器.游戏化教学产品"代码竞技场".教材.师 ...

  3. PTA 基础编程题目集 7-13 日K蜡烛图 C语言

    PTA 基础编程题目集 7-13 日K蜡烛图 C语言 股票价格涨跌趋势,常用蜡烛图技术中的K线图来表示,分为按日的日K线.按周的周K线.按月的月K线等.以日K线为例,每天股票价格从开盘到收盘走完一天, ...

  4. c语言代码运行成图指令代码,C语言图形编程代码.doc

    C语言图形编程代码 C语言图形编程代码 自己以前编写的C语言图形编程代码 自己以前编写的图形编程代码实现DOS下256BMP图片显示,中文注释,中文汉字显示 写的不好,给大家交流与学习,TC3.0与T ...

  5. GO 语言核心编程-全文版

    第 1 章 1.1Golang的学习方向 Go语言,我们可以简单的写成Golang. Golang开山篇 1.2Golang的应用领域 1.2.1区块链的应用开发 1.2.2后台的服务应用 1.2.3 ...

  6. arm汇编和c语言混合编程实验报告,arm实验ARM汇编和C语言混合编程.doc

    arm实验ARM汇编和C语言混合编程.doc 成绩辽宁工程技术大学上机实验报告课程名称汇编语言程序设计基于ARM体系结构实验题目ARM汇编和C语言混合编程院系软件学院专业软件工程班级姓名学号实验日期实 ...

  7. c语言 简单编程题,c语言简单编程练习题.doc

    c语言简单编程练习题 精品文档 2016全新精品资料-全新公文范文-全程指导写作 –独家原创 PAGE1 / NUMPAGES1 c语言简单编程练习题 然后输出相应的字符. #include #inc ...

  8. c语言是函数式原型的编程,编程范式|程序世界里的编程范式,探索编程本质

    最近看了一些关于编程范式的文章,简要做一些小结和记录 什么是编程范式 在现实生活中,为了适配各种规格的螺帽,我们需要许多种类的螺丝刀. 在编程世界中,静态语言有许多种类的数据类型. 不过,我们可以发现 ...

  9. 鼠标绘图 c语言,c语言高级编程技术教程 图形显示方式与鼠标输入.doc

    c语言高级编程技术教程 图形显示方式与鼠标输入 c语言高级编程技术教程 图形显示方式和鼠标输入 图形显示方式和鼠标输入 问题的提出编写程序,使用鼠标进行如下操作:按住鼠标器的任意键并移动,十字光 标将 ...

  10. c语言soket编程,C语言socket编程使用方法

    C语言socket编程使用方法 C语言是一门通用计算机编程语言,应用广泛.C语言的设计目标是提供一种能以简易的方式编译.处理低级存储器.产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言.以 ...

最新文章

  1. 64位win7安装vs2010出现“组件安装失败...”等问题的解决方法
  2. opencv对图像是软解码_在图像识别上深度学习和opencv有什么不同啊,我只用过opencv,对深度学习不了解...
  3. 接口转发和重定向区别(四)
  4. 3.5 梯度校验-机器学习笔记-斯坦福吴恩达教授
  5. 《转载》POI导出excel日期格式
  6. 【Linux】一步一步学Linux——arpwatch命令(165)
  7. linux memcached 运行,linux下查看Memcached运行状态
  8. ORACLE事务提交
  9. php打包压缩下载多大,php多文件打包压缩下载简单示例
  10. [Ubuntu] apt 添加第三方库
  11. 『中级篇』容器网络之host和none(29)
  12. 深耕“工业互联网”,华为云持续开花
  13. php一点通,编程一点通
  14. 即将上线的Kafka 集群(用CM部署的)无法使用“--bootstrap-server”进行消费,怎么破?...
  15. iOS runtime实用篇解决常见Crash
  16. skyline 系列 3 -TerraBuilder的使用 、mpt的创建和发布
  17. python负数字符串转成_python 转字符
  18. 构建一个 CLI 工具
  19. 大学英语精读第三版(第三册)学习笔记(原文及全文翻译)——8B - Dreams — What Do They Mean?(梦意味着什么?)
  20. int / int(double); java保留小数

热门文章

  1. 心智与认知(1): 反馈循环(Feedback loop)
  2. 一则汽车CAN总线的安全渗透题目分析
  3. 从傅里叶级数到傅里叶变换
  4. 统计工具代码同步安装和异步安装有何区别
  5. java连接mysql数据,实现快递单管理信息系统
  6. 英雄联盟服务器维护时间,英雄联盟维护的时间是几点结束 lol维护公告几点结束今天...
  7. animation动画--跳动
  8. 使用Selenium爬取淘宝商品
  9. Kubernetes Pod 健康检查机制 LivenessProbe 与 ReadinessProbe
  10. 简历学习课程:1-9课