小朋友们好,大朋友们好!
我是猫妹,一名爱上Python编程的小学生。
欢迎和猫妹一起,趣味学Python。
今日主题
介绍下Python的turtle库,这是一个可以画画的库,非常适合小孩子在屏幕上画画。
先学习基础知识,下面三个有趣的程序都是turtle做的,漂亮吗?
LOGO语言
LOGO语言“logo”一词源于希腊文,原意为“文字”或“思考”、“想法”。
是一种过程性语言,是在1967年由美国麻省理工学院(MIT)佩帕特(Seymour Papert)教授指导下的一个研究小组在LISP语言基础上,专门为儿童研制开发的编程语言。
Logo语言虽然结构简单、却有丰富的表达方式,体现了现代计算机科学许多最新概念。
在LOGO的世界里,人们可以通过编程输入指令,让小海龟在画面上走动,向左右上下,或者按照设定的角度移动,或者重复做某一件事情。
简单的绘图指令,加上判断、循环等程序设计方法,可以绘制出美丽的图案,比如人物、动物、植物、抽象画等等。
turtle库
Python内置了turtle库,借鉴了LOGO语言海龟画图的所有绘图功能。
画布(canvas)
所谓画布,就是将这些东西都存放在一个位置进行设定,方便展开绘画的区域。
常见的方式有两种:
turtle.screensize(canvwidth=None, canvheight=None, bg=None)
三个参数,分别是设置画布的宽、高及背景样式的操作,在使用的时候,宽的单位为像素
比如:
turtle.screensize(600, 400, "green")
turtle.screensize() #返回默认大小(400, 300)
turtle.setup(width=0.5, height=0.75, startx=None, starty=None)
前面两个参数是设置画布的宽和高的,当它们为整数的时候表示的是像素,如果是小数就表示当前使用电脑的屏幕比例。
后面两个参数设置的是矩形窗口顶点的位置,当值为空时,默认窗口会在屏幕的中间出现。
比如:
turtle.setup(width=0.6, height=0.6)
turtle.setup(width=800, height=800, startx=100, starty=100)
绘图屏幕坐标系
画笔
turtle.shape("turtle")可指定画笔的形状
classic,arrow,tutle(缺省默认值),circle,square,triangle
turtle.pensize():设置画笔的宽度。
turtle.speed():画笔的移动速度,范围为0到无穷大。
turtle.pencolor():设置获取画笔颜色。
绘图控制
向前移动:tutle.forward(distance),tutle.fd(distance)
向后移动:tutle.backward(distance),tutle.bk(distance)
向左旋转:tutle.left(angle),tutle.lt(angle)
向右旋转:tutle.right(angle),tutle.rt(angle)
向左旋转角度:tutle.seth(angle)
画笔运动命令
tutle.forward(distance),tutle.fd(distance)
tutle.backward(distance),tutle.bk(distance)
tutle.left(angle),tutle.lt(angle)
tutle.right(angle),tutle.rt(angle)
tutle.pendown(),pd(),down():画笔落下,移动时绘制图形,缺省值
tutle.goto(x,y):画笔移动到(x,y)
tutle.penup(),pu(),up():画笔抬起,移动时不绘制图形
tutle.setx():将当前x轴移动到指定位
tutle.sety():将当前y轴移动到指定位置
tutle.setheading(angle),tutle.seth():设置当前朝向为angle的角度
tutle.home():设置画笔位置到原点,朝向东
画笔设置命令
tutle.pensize(width):画笔宽度
tutle.pencolor(colorstring):画笔颜色
tutle.colormode(mode):改变颜色生成模式
tutle.fillcolor(colorstring):绘制图形填充颜色
tutle.color(color1,color2):同时设置pencolor=color1,fillcolor=color2
tutle.filling():返回当前是否在填充装填
tutle.begin_fill():准备开始填充图形
tutle.end_fill():填充完成
tutle.hideturle():隐藏画笔形状
tutle.showturle():显示画笔形状
画笔控制命令
tutle.clear():清空turle窗口,但turtle位置和状态不改变
tutle.reset():清空窗口,重置turtle状态为起始状态
tutle.undo():撤销上一个turtle动作
tutle.isvisable():返回当前turtle是否可见
tutle.stamp():复制当前图形
tutle.write(s,font):写文本s,字体是font
tutle.dot(r,color):绘制一个指定直径和颜色的原点
tutle.circle(radius,extents,steps):以给定半径画圆,半径radius为正(负),表示圆心在画笔的左边(右边)画圆
其他高级命令
tutle.done():程序暂停,直到用户关闭。一般是最后一个语句
tutle.mode(mode=None):设置standard,logo,world
tutle.delay(delay=None):设置或返回以毫秒为单位的绘图延迟
tutle.begin_poly():开始记录多边形的顶点
tutle.end_poly():停止记录多边形的顶点
tutle.get_poly():返回最后记录的多边形
模式‘standard’与turtle.py兼容。
模式‘logo’与大多数Logo-Turtle-Graphics兼容。
模式‘world’使用用户定义的‘worldcoordinates’。
怎么样?
有趣吧?
好了,我们今天就学到这里吧!
如果遇到什么问题,咱们多多交流,共同解决。
我是猫妹,咱们下次见!