赞
踩
一、导入
导入方式一:
from turtle import *
这种方式导入的话,可以在文件中直接使用该库的所有的方法。
例如:(设置一个300*300,画笔在100*100的位置上,画一个圆)
from turtle import *
setup(300,300,100,100)//设置界面为300*300
pensize(2)
pencolor('blue')
circle(30)
mainloop()
导入方式二:
import turtle
如上的例子,这种导入的方式的写法如下
import turtle
t=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 turtle
t=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”画笔的外观不适应
持续整理中…
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。