在1966年,Seymour Papert和Wally Feurzig发明了一种专门给儿童学习编程的语言——LOGO语言,它的特色就是通过编程指挥一个小海龟(turtle)在屏幕上绘图。

海龟绘图(Turtle Graphics)后来被移植到各种高级语言中,Python内置了turtle库,基本上100%复制了原始的Turtle Graphics的所有功能。

我们来看一个指挥小海龟绘制一个长方形的简单代码:

# 导入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()函数可以设置颜色。更多操作请参考turtle库的说明。

绘图完成后,记得调用done()函数,让窗口进入消息循环,等待被关闭。否则,由于Python进程会立刻结束,将导致窗口被立刻关闭。

turtle包本身只是一个绘图库,但是配合Python代码,就可以绘制各种复杂的图形。例如,通过循环绘制5个五角星:

from turtle import *

def drawStar(x, y):

pu()

goto(x, y)

pd()

# set heading: 0

seth(0)

for i in range(5):

fd(40)

rt(144)

for x in range(0, 250, 50):

drawStar(x, 0)

done()

程序执行效果如下:

使用递归,可以绘制出非常复杂的图形。例如,下面的代码可以绘制一棵分型树:

from turtle import *

# 设置色彩模式是RGB:

colormode(255)

lt(90)

lv = 14

l = 120

s = 45

width(lv)

# 初始化RGB颜色:

r = 0

g = 0

b = 0

pencolor(r, g, b)

penup()

bk(l)

pendown()

fd(l)

def draw_tree(l, level):

global r, g, b

# save the current pen width

w = width()

# narrow the pen width

width(w * 3.0 / 4.0)

# set color:

r = r + 1

g = g + 2

b = b + 3

pencolor(r % 200, g % 200, b % 200)

l = 3.0 / 4.0 * l

lt(s)

fd(l)

if level < lv:

draw_tree(l, level + 1)

bk(l)

rt(2 * s)

fd(l)

if level < lv:

draw_tree(l, level + 1)

bk(l)

lt(s)

# restore the previous pen width

width(w)

speed("fastest")

draw_tree(l, 4)

done()

执行上述程序需要花费一定的时间,最后的效果如下:

参考源码

python海龟绘图颜色_海龟绘图相关推荐

  1. python文本编辑器下载_海龟编辑器官方下载|海龟编辑器(Python编辑器)下载 v1.3.4 官方版 - 绿点软件站...

    编程软件,积木和代码一键转化,学起来简单有趣,可以让孩子们搭一搭积木就轻松写出Python代码,既可以提高孩子对编程的学习兴趣,又可以降低小朋友们学习Python编程的门槛,海龟编辑器扩展功能强大,支 ...

  2. python海龟交易策略_海龟交易法则的基本原理是什么,如何实现海龟交易策略?...

    海龟交易法则简介 什么是海龟交易法则? ​ 1983年年中,著名的商品投机家理查德.丹尼斯与他的老友比尔.埃克哈特进行了一场辩论,这场辩论是关于伟大的交易员是天生造就还是后天培养的.理查德相信,他可以 ...

  3. python海龟作图红绿灯_海龟作图---用Python绘图

    一.关于Turtle "turtle是一个简单的绘图工具.它提供了一个海龟,你可以把它理解为一个机器人,只听得懂有限的指令" 操纵海龟绘图有着许多的命令,这些命令可以划分为两种:一 ...

  4. python文本编辑器下载_海龟编辑器(Python编辑器)

    海龟编辑器提供可视化的编辑方式,可以让您在编辑代码的时候更加简单,软件提供图形编辑方式,在编程的时候软件有相关的提示,例如添加事件.控制.运算.字符串等内容都是有提示的,对于学习Python是很有帮助 ...

  5. python编辑器怎么下载_海龟编辑器(Python编辑器)下载-海龟编辑器(Python编辑器)下载v1.3.6-IE浏览器中文网站...

    针对少儿的一款代码编辑软件,海龟编辑器(Python编辑器)将代码以堆积木的方式呈现,让孩子在游戏中学习,降低学习难度,提高和吸引孩子的学习兴趣. 软件特点 1.一键安装第三方库. 2.扩展功能强大. ...

  6. python海龟在线编辑_海龟编辑器下载_海龟编辑器(Python编辑器)v0.7.1免费下载2018最新版_酷下载...

    海龟编辑器(Python编辑器)是一款非常还用且简单的编程类软件,在这款软件中,有着很多的功能及细节等待着用户们的发现,且软件界面干净整洁.使用非常的舒服. 海龟编辑器功能: 1.海龟编辑器提供简单的 ...

  7. python r语言 作图_生物医学绘图,Python 并不比R语言差

    做过基因测序和生物信息学分析,尤其是做过RNAseq分析的同学都知道,R语言中有一款数据可视化神器ggplot2,其绘图功能强大,但它的缺陷是不能直接绘制3D图形,需要加载扩展包,很麻烦. 如果用Py ...

  8. python改变背景颜色_python中绘图时怎么改背景颜色?

    python中一般使用matplotlib库进行绘图,下面我们就来看一下python中绘图时修改背景颜色的方法: 子图可以对plt.subplot的参数做修改,下面是对子图的背景颜色修改代码:impo ...

  9. 怎么用python海龟画五角星_海龟编辑器五角星怎么画 绘制五角星就是这么简单...

    海龟编辑器作为一款面向少儿的Python编辑器,它可以让孩子通过图形化的方式学习Python,很多用户在刚开始使用时不知道怎么绘制最基本的图形,小编将绘制五角星的方式通过两种方法进行讲解,想知道的赶快 ...

  10. python海龟代码大全_海龟交易系统的Python完全版 | RiceQuant米筐量化社区 交易策略论坛...

    @zhaoyang-chen 海龟的Python版出炉. 为方便对比,这里把java.python两种语言代码同时贴出,回测时间及初始资金均使用页面默认的20140104-20150104,10000 ...

最新文章

  1. 稳定性保障,如何慢慢放量灰度
  2. ZooKeeper集群安装
  3. webpack源码阅读——npm脚本运行webpack与命令行输入webpack的区别
  4. 地址总线与数据传送机制
  5. 三人表决器逻辑表达式与非_机器学习 | 关于参数模型与非参数模型研究
  6. 订阅基础:RSS、ATOM、FEED、聚合、供稿、合烧与订阅
  7. i春秋做题记录 web(一)
  8. 会php学java入门要多久_php8(java入门要多久)
  9. 马云:未来30年大数据时代,如何避免成为穷人?
  10. 捐赠赞助单页HTML模板
  11. 值得收藏的Redis基础总结
  12. jenkins没有参数化构建过程选项
  13. Pwn2Own 2020 曝出的Linux 内核漏洞已修复
  14. linux内核之dmaengine
  15. steam一键授权工具_Sam Haynor的100个STEAM项目
  16. 最新布尔教育Blog项目实战 php博客项目实战教程 php实战教程(完整)
  17. 网易云自动化爬虫方案,24小时爬取10万首音乐信息,30万条用户信息,100万个热评
  18. java web使用的主流框架介绍
  19. word设置背景色为护眼的绿色
  20. 计算机显示pc19,19寸显示器最佳分辨率是多少 怎么设置【图文教程】

热门文章

  1. 职业投资策略(转贴)
  2. 2021年中国云游戏产业发展环境(PEST)分析:中国云游戏服务拥有光明前景[图]
  3. 爬取大麦网的演出数据
  4. Linux文件颜色含义
  5. 电脑桌面图标右上角出现计算机名称如何取消,电脑桌面上的图标名称怎么清除不显示?...
  6. 梅西大学研究员创造出新3D打印系统 用螺杆作为进料机构挤出颗粒
  7. 如何实现thead固定不动,tbody出现垂直滚动条
  8. 2018年12月份冬季PAT甲级考试总结
  9. 猜拳小游戏(Java代码实现)
  10. 补码中关于-32768的问题