Python零基础入门学习18:常用标准库之turtle绘图库

:本文所有代码均经过Python 3.7实际运行检验,保证其严谨性。

turtle库基本介绍

turtle库,1969年诞生,被Python语言借鉴,是Python的标准库。

turtle名称含义为“海龟”,我们想象一只海龟,位于显示器上窗体的正中心,在画布上游走,它游走的轨迹就形成了绘制的图形。海龟的运动是由程序控制的,它可以变换颜色,改变尺寸、大小等。利用turtle可以制作很多复杂的绘图。

turtle库绘图窗体布局
turtle.setup(width, height[, startx, starty])

setup()设置窗体大小及位置。width, height分别是窗体本身的宽度和高度,如下图所示。startx, starty是可选参数。

turtle的绘图窗体
turtle空间坐标体系
turtle空间坐标体系
turtle坐标
turtle坐标移动
turtle绝对角度坐标体系
turtle绝对角度的坐标系

$turtle.seth(angle)$用来改变海龟行进方向,参数angle为绝对角度(角度制的度数值,不带°号)。

turtle海龟角度的坐标系

用turtle.right(angle)和turtle.left(angle)来改变turtle行进的方向角度。
某个turtle绘图示例如下:

import turtle
turtle.left(45)
turtle.fd(150)
turtle.right(135)
turtle.fd(300)
turtle.left(135)
turtle.fd(150)
RGB色彩体系

RGB由三种颜色构成的万物色。

  • RGB指红蓝绿三个通道的颜色组合。
  • 覆盖视力所能感知的所有颜色。
  • RGB每色取值范围是0255整数,或01小数。

turtle默认使用RGB的小数值改变颜色,turtle.colormode(mode)

  • 1.0:RGB小数值模式。
  • 255:RGB整数值模式。

拿紫色的RGB整数值模式(160, 32, 240)做例子,将其每个颜色数值除以255,保留两位小数,就能得到其RGB小数值模式(160/255, 32/255, 240/255),即(0.63, 0.13, 0.94)。

常用的RGB色彩1
常用的RGB色彩2
turtle画笔控制函数

画笔操作后一直有效,一般成对出现。

-turtle.penup(),别名turtle.pu()。

抬起画笔,海龟在飞行。这时的轨迹不在画布上形成痕迹。

-turtle.pendown(),别名turtle.pd()。

落下画笔,海龟在爬行。这时的轨迹在画布上形成痕迹。

turtle.pu()和turtle.pd()是成对出现的。

-turtle.pensize(width) 别名 turtle.width(width)。

画笔宽度,海龟的腰围。

-turtle.pencolor(color),color为颜色字符串或RGB值。

画笔颜色,海龟在涂装。

pencolor(color)的color参数可以有三种形式:

  • 颜色字符串:-turtle.pencolor("purple")
  • RGB的小数值:turtle.pencolor(0.63, 0.13, 0.94)
  • RGB的元组值:turtle.pencolor((0.63, 0.13, 0.94))
turtle运动控制函数

控制海龟行进:走直线&走曲线:

-turtle.forward(d) 别名 turtle.fd(d),走直线

向前行进,海龟走直线。d:行进距离,可以为负数。

-turtle.circle(r, extend=None),走曲线

根据半径r绘制extent角度的弧形。r是默认圆心在海龟左侧r距离的位置。extent是绘制角度,默认是360°即整圆;当extent为正数时,圆从turtle当前位置逆时针方向(即顺象限方向)画圆心角为|extent|角度(角度制)的弧形;当extent为负数时,圆从turtle当前位置顺时针方向(即逆象限方向)画圆心角为|extent|角度(角度制)的弧形。

turtle方向控制函数

控制海龟面对方向:绝对角度&海龟角度

-turtle.setheading(angle) 别名turtle.seth(angle)——绝对角度
改变行进方向,海龟走的绝对角度。angle:改变行进方向的绝对角度。

-turtle.left(angle), turtle.right(angle)

改变行进方向,海龟走的海龟角度。angle:改变行进方向的海龟角度。

“Python蟒蛇绘制”代码实例

import turtle
turtle.setup(650, 350, 200, 200)
turtle.penup()
turtle.fd(-250)
turtle.pendown()
turtle.pensize(25)
turtle.pencolor("purple")
turtle.seth(-40)
for i in range(4):
    turtle.circle(40, 80)
    turtle.circle(-40, 80)
turtle.circle(40, 80/2)
turtle.fd(40)
turtle.circle(16, 180)
turtle.fd(40 * 2/3)
turtle.done() # 用来保持程序的图象存在。若没有这行,程序运行完成后会自动退出。

turtle.done() 用来停止画笔绘制,但绘图窗体不关闭。

To be continued.

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,718评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,683评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,207评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,755评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,862评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,050评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,136评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,882评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,330评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,651评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,789评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,477评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,135评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,864评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,099评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,598评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,697评论 2 351

推荐阅读更多精彩内容