python学习笔记 turtle类使用
来源:互联网 发布:北师大网络教育官网 编辑:程序博客网 时间:2024/06/05 02:21
一、导入
导入方式一:
from turtle import *
这种方式导入的话,可以在文件中直接使用该库的所有的方法。
例如:(设置一个300*300,画笔在100*100的位置上,画一个圆)
from turtle import *setup(300,300,100,100)//设置界面为300*300pensize(2)pencolor('blue')circle(30)mainloop()
导入方式二:
import turtle
如上的例子,这种导入的方式的写法如下
import turtlet=turtle.Turtle()turtle.setup(300,300,300,100)t.pensize(2)t.pencolor('blue')t.circle(30)turtle.mainloop()
其中,turtle.Turtle()是一个画笔的对象。
有关绘制和设置画笔相关的就是画笔的属性。
turtle.setup和turtle.mainloop设置的是画布的属性。
二方法介绍
画布的方法:
setup(width,height,floatx,floaty)设置绘制区域
绘制开始前调用tracer(False)
绘制结束之后tracer(True)
这个方法是直接展示给用户绘制结果,无需漫长的等待绘制过程,这个方法turtle里有,turle.Turtle里面也有,效果是一样的。
register_shape(name,shape) & addshape(name,shape)
源码
addshape = register_shape
所以这两个方法实际上是一样的。
注册一个图形
使用:
import turtlet=turtle.Turtle()turtle.setup(300,300,300,100)t.pensize(2)t.pencolor('blue')turtle.tracer(False)t.penup()t.begin_poly()#开始记录多边形的顶点for i in range(6): t.forward(100) t.right(60)t.end_poly()#获取多边形shape=t.get_poly()#注册多边形turtle.register_shape("shape",shape)t.pendown()t.shape('shape')#绘制这个图形turtle.tracer(True)turtle.mainloop()
bgcolor(color) 设置屏幕的背景颜色
eg:turtle.bgcolor(‘red’)
bgpic(picname)设置屏幕背景图案
ps:这个还未设置成功,日后在试
mode(mode)画笔的起始方向
默认为standard,正东方向
logo 正北方向
world 世界坐标系,这种方式不太懂
源码写着:
'world' uses userdefined 'worldcoordinates'. *Attention*: in this mode angles appear distorted if x/y unit-ratio doesn't equal 1. If mode is not given, return the current mode.
意思是:
如果x / y单位比例不等于1,则这种模式角度会出现扭曲。应该是跟地球投影相类似的
ontimer(fun,t=0)定时器,定时执行fun函数
title(title)设置窗口的标题
bye() 销毁屏幕上的对象
源码:
def _destroy(self): root = self._root if root is _Screen._root: Turtle._pen = None Turtle._screen = None _Screen._root = None _Screen._canvas = None TurtleScreen._RUNNING = False root.destroy() def bye(self): """Shut the turtlegraphics window. Example (for a TurtleScreen instance named screen): >>> screen.bye() """ self._destroy()
调用bye函数之后,就不能调用画笔了
eg:
turtle.bye()t.circle(60)
执行之后:
Traceback (most recent call last): File "E:/python/myturtle.py", line 540, in <module> t.circle(60) File "D:\Python27\lib\lib-tk\turtle.py", line 1903, in circle self.speed(0)
clearscreen()清除屏幕中绘制的东西
colormode(mode)设置画笔的颜色的表示方式
mode的值只能是1和255
默认mode=1画笔颜色的设置如下任一种都可以:
t.pencolor('red')t.pencolor('#aeffff')
当然如果mode=255的时候,以上两种设置依然生效。
mode=255的时候可以调用t.pencolor(r,g,b)的方法,如下所示:
t.pencolor(24,2,255)
但是上面的方法在mode=1的时候是不允许调用的。
delay(t) 设置画笔延迟时间,其实跟ontimer类似,只不过ontimer有指定自己的绘制函数,而delay调用的是turtle内部的绘制函数。
源码:
def delay(self, delay=None): """ Return or set the drawing delay in milliseconds. Optional argument: delay -- positive integer Example (for a TurtleScreen instance named screen): >>> screen.delay(15) >>> screen.delay() 15 """ if delay is None: return self._delayvalue self._delayvalue = int(delay)
delay内部将delay给了_delayvalue ,我们再看下这个值,其实是TurtleScreen里的属性。这个值在_update里使用.
def _update(self): """Perform a Turtle-data update. """ screen = self.screen if screen._tracing == 0: return elif screen._tracing == 1: self._update_data() self._drawturtle() screen._update() # TurtleScreenBase screen._delay(screen._delayvalue) # TurtleScreenBase else: self._update_data() if screen._updatecounter == 0: for t in screen.turtles(): t._drawturtle() screen._update() def _delay(self, delay): """Delay subsequent canvas actions for delay ms.""" self.cv.after(delay)
然后看下ontimer函数
def _ontimer(self, fun, t): """Install a timer, which calls fun after t milliseconds. """ if t == 0: self.cv.after_idle(fun) else: self.cv.after(t, fun)
exitonclick()点击屏幕退出
画笔的方法:
pensize(size)设置画笔大小
pencolor(color)设置画笔颜色
seth(angle)设置画笔的方向
正东方向逆时针0-360
circle(rad,angele)rad圆的半径,为正在半径的左边,为负在半径的右边
angle 绘制的角度值 360为一个圆
fd(rad)向前直线爬行距离rad
penup()画笔抬起
pendown()画笔放下
begin_poly() & end_poly() 一组
记录多边形路径
get_poly()获取记录的多边形
shapesize(stretch_wid,stretch_len,outline)设置图形的大小,参数:宽度拉伸,长度拉伸,图形宽度
resizemode(rmode)设置图像大小模式
参数rmode的值:“auto”适应画笔的外观对应于pensize的值。
“user”按照适应画笔的外观 stretchfactor和outlinewidth(outline)的值, 这是由shapesize()设置的。通过调用具有参数的shapeize来调用
“noresize”画笔的外观不适应
持续整理中…
- python学习笔记 turtle类使用
- python学习笔记-turtle类库实例
- python学习笔记1--turtle
- 海龟绘图-python turtle学习笔记1
- 海龟绘图-python turtle学习笔记2
- 海龟绘图-python turtle学习笔记3
- [python学习]Turtle库
- Python学习-turtle画图
- python turtle 使用
- python学习笔记2--用turtle简单绘图
- python学习笔记9--用turtle简单绘图2
- 【Python学习】 之 Turtle库
- python学习之Turtle 1
- python学习之Turtle 2
- python学习之Turtle 3
- python学习之Turtle 4
- python学习之Turtle 5
- 【Python学习】 之 Turtle库
- svn命令行工具安装使用(windows)
- 阿里云服务器部署otter实现数据双A同步过程记录(4)
- bootstrap栅格式布局
- Android WebView使用本地字体
- python里使用正则表达式来替换匹配成功的组并限定替换的次数
- python学习笔记 turtle类使用
- Oil Skimming HDU
- 9-EMM Scenario and Eleven EMM Cases
- JS——OOP1(console.dir)
- pthread_join
- 包含min函数的栈
- 使用Openembedded定制嵌入式Linux镜像
- 关于微信精选留言点赞刷赞之公众号评论点赞及文章评论点赞软件使用方法
- addChild的时候报出invalid 'cobj' in function 'lua_cocos2dx_Node_addChild'的错误