python之turtle库学习
作者:鎏嫣宫守护
来源:CSDN
原文:https://blog.csdn.net/qq_32067045/article/details/80243430
一、方法
- forward() | fd():向前移动指定的距离。参数:一个数字(integer or float))。
turtle.forward(25)
- backward() | bk() | back():向后移动指定的距离。参数:一个数字(integer or float))。
turtle.backward(30)
- right() | rt():以角度单位向右转动。参数:一个数字(integer or float))。单位默认为度数,可以通过degrees()和radians()进行设置。
turtle.right(45)
- left() | lt():以角度单位向右转动。参数:一个数字(integer or float))。单位默认为度数,可以通过degrees()和radians()进行设置。
turtle.left(45)
- goto() | steps() | setposition():移动到绝对位置,如果笔落下,画线,不改变方向。参数:x-一个数字或一对数字。y-一个数字或None。
turtle.setpos(60,30)
#60.00,30.00)
- setx():设置第一个坐标的值即X方向。参数:一个数字(integer or float))。
turtle.setx(10)
#(10.00,0.00)
- sety():设置第二个坐标的值即Y方向。参数:一个数字(integer or float))。
turtle.sety(10)
#(0.00,10.00)
- setheading() | seth(): 将方向设置为to_angle.就是东西南北方向。具体如下:
标准模式:0 - 东 90 - 北 180 - 西 270 - 南 标志模式 0- 北 90- 东 180- 南 270 - 西
turtle.setheading(90)
- home() : 移动到原点 - 坐标(0,0):并将其标题设置为其起始方向(取决于模式)。
turtle.home()
# (0.00,0.00)
- circle():绘制一个给定半径的圆。参数:radius-一个数字(半径,如果值为正则逆时针,负数为顺时针),extent-一个数字()steps- 执行的步数。
turtle.circle(120,180,5)
- dot() :用颜色画出一个直径大小的圆点。参数:size-一个大于1的整数,可None。默认用的是pensize+4和2*pensize的最大值,color-颜色值
turtle.dot(20, "blue")
- stamp():将当前位置上的形状复制到画布上返回stamp_id.可以调用,可以删除。
turtle.stamp()
-
clearstamp():删除stamp()返回来的值。参数:stampid。
-
clearstamps():删除全部stamp()的值。参数:stampid。
-
undo():撤销最后的动作。
-
speed():将速度设置为0..10范围内整数。如果没有参数,则返回当前速度。如果大于10或者小于0.5,则速度设置为0 。
“最快”:0 :直接成图,没有动画效果
“快”:10:大概一秒
“正常”:6:
“慢”:3
“最慢”:1
- position() | pos(): 返回当前的位置。
turtle.pos()
# (0.00,0.00)
- towards(): 返回当前位置同指定位置之间的角度。参数:x-一个数字或一对数字或一个实例的向量,y-如果x是数字,则为数字,否则为None。
turtle.goto(10,10)
tw = turtle.towards(0,0)
print(tw)
# 225
-
xcor():返回x坐标。
ycor():返回y坐标。
-
heading(): 返回当前的方向值。
-
distance():返回x,y两个点的直线距离
-
degrees():设置一整圈的度数。默认是360度。
-
radians():将角度测量单位设置为弧度。相当于 degrees(2*math.pi)
-
pendown() | pd() | down():放下笔,移动的时候绘图。
-
penup() | pu() | up():将提起笔,移动时无图。
-
pensize():设置线条的粗细。参数:width-一个正数
-
pen():使用键值对设置笔的属性:
“shown”: True/False
“pendown”: True/False
“pencolor”: 颜色字符串或者颜色值
“fillcolor”: 颜色字符串或者颜色值
“pensize”: 正数
“speed”: 速度范围为0..10的数字
“resizemode”: “auto” or “user” or “noresize”
“stretchfactor”: (positive number, positive number)
“outline”: 正数
“tilt”: 正数
-
isdown():如果笔停止返回True,反之False
-
pencolor():设置笔的颜色。
-
fillcolor():笔的填充色。
-
color():同时设置pencolor和fillcolor
-
filling():返回fillstate状态,如果填充则返回True,反之False。
-
begin_fill():在绘制要填充的形状前调用。当然在调用完还需要end_fill()。
-
reset():重置,将屏幕中的图纸删除,重新居中并将所有变量设置为默认值。
-
clear():删除图纸。对属性不做操作。
-
write():写文本。参数:arg-要写入的对象。move-是否移动。align-对齐方式:left,right,center。font-字体。fontname,fontsize,fonttype。
-
hideturtle() | ht() :删隐藏乌龟的形状,在做复杂绘图的时候隐藏的时候有利于提高绘图速度。
-
showturtle() | st():显示乌龟的形状。
-
isvisible():乌龟是否可见。如果可见返回True,反之则False。
-
shape():设置乌龟的图形形状,取值:“arrow”, “turtle”, “circle”, “square”, “triangle”, “classic”
-
isvisible():乌龟是否可见。如果可见返回True,反之则False。
-
resizemode():参数:rmode取值:"auto","user","noresize".
-
shapesize() | turtlesize() : 返回笔的属性。
-
shearfactor(): 设置或者返回当前的剪切因子。
-
tilt():旋转由turtle shape角度从当前的倾斜角度。
-
settiltangle():无论当前的倾斜角度如何,旋转乌龟指向 angle 指定的方向。参数:angle -数字。已弃用
-
tiltangle():设置或者返回当前的倾斜角度。参数:angle - 数字
-
shapetransform():设置或返回乌龟的形状的当前转换矩阵。
-
get_shapepoly():返回当前形状的坐标。
-
onclick():鼠标点击事件。参数:fun-一个带有两个参数的函数,这些参数将与画布上单击点的坐标一个调用。num-鼠标按钮的数量,默认为1(左键)。add- True的时候将添加新的绑定。否则替换以前的绑定。
-
onrelease():鼠标释放事件。参数同点击事件。
-
ondrag():鼠标移动事件。参数同点击事件。
-
begin_poly(): 开始记录多边形的顶点。
-
end_poly():停止记录多边形的顶点。
-
get_poly():返回最后记录的多边形。
-
clone():创建并返回具有相同位置等等属性的乌龟克隆。
-
getturtle() | getpen() :获取trutle对象本身。
-
getscreen():返回正在绘制的对象。
-
setundobuffer(): 设置或禁用中断器。参数: size-整数。如果大小是None,则禁用缓冲区。
-
undobufferentries():返回undobuffer中的条目数。
-
bgcolor():设置或者返回当前的TurtleScreen的背景颜色。
-
bgpic():设置背景图片。参数: picname-文件名。
-
delay(): 设置或返回以毫秒为单位的绘制延迟,延迟越大,绘图越慢。
-
ontimer():定时器。
-
mainloop() | done() :开始循环 。
-
textinput() | numinput():弹出一个输入字符串和数字的窗口。
-
mode(): 三种方式:“standard”, “logo” or “world”
小猪佩奇代码(转自网络)
import turtle as t
t.pensize(4) # 设置画笔的大小
t.colormode(255) # 设置GBK颜色范围为0-255
t.color((255,155,192),"pink") # 设置画笔颜色和填充颜色(pink)
t.setup(840,500) # 设置主窗口的大小为840*500
t.speed(10) # 设置画笔速度为10
#鼻子
t.pu() # 提笔
t.goto(-100,100) # 画笔前往坐标(-100,100)
t.pd() # 下笔
t.seth(-30) # 笔的角度为-30°
t.begin_fill() # 外形填充的开始标志
a=0.4
for i in range(120):
if 0<=i<30 or 60<=i<90:
a=a+0.08
t.lt(3) #向左转3度
# t.fd(a) #向前走a的步长
else:
a=a-0.08
t.lt(3)
t.fd(a)
t.end_fill() # 依据轮廓填充
t.pu() # 提笔
t.seth(90) # 笔的角度为90度
t.fd(25) # 向前移动25
t.seth(0) # 转换画笔的角度为0
t.fd(10)
t.pd()
t.pencolor(255,155,192) # 设置画笔颜色
t.seth(10)
t.begin_fill()
t.circle(5) # 画一个半径为5的圆
t.color(160,82,45) # 设置画笔和填充颜色
t.end_fill()
t.pu()
t.seth(0)
t.fd(20)
t.pd()
t.pencolor(255,155,192)
t.seth(10)
t.begin_fill()
t.circle(5)
t.color(160,82,45)
t.end_fill()
#头
t.color((255,155,192),"pink")
t.pu()
t.seth(90)
t.fd(41)
t.seth(0)
t.fd(0)
t.pd()
t.begin_fill()
t.seth(180)
t.circle(300,-30) # 顺时针画一个半径为300,圆心角为30°的园
t.circle(100,-60)
t.circle(80,-100)
t.circle(150,-20)
t.circle(60,-95)
t.seth(161)
t.circle(-300,15)
t.pu()
t.goto(-100,100)
t.pd()
t.seth(-30)
a=0.4
for i in range(60):
if 0<=i<30 or 60<=i<90:
a=a+0.08
t.lt(3) #向左转3度
# t.fd(a) #向前走a的步长
else:
a=a-0.08
t.lt(3)
t.fd(a)
t.end_fill()
#耳朵
t.color((255,155,192),"pink")
t.pu()
t.seth(90)
t.fd(-7)
t.seth(0)
t.fd(70)
t.pd()
t.begin_fill()
t.seth(100)
t.circle(-50,50)
t.circle(-10,120)
t.circle(-50,54)
t.end_fill()
t.pu()
t.seth(90)
t.fd(-12)
t.seth(0)
t.fd(30)
t.pd()
t.begin_fill()
t.seth(100)
t.circle(-50,50)
t.circle(-10,120)
t.circle(-50,56)
t.end_fill()
#眼睛
t.color((255,155,192),"white")
t.pu()
t.seth(90)
t.fd(-20)
t.seth(0)
t.fd(-95)
t.pd()
t.begin_fill()
t.circle(15)
t.end_fill()
t.color("black")
t.pu()
t.seth(90)
t.fd(12)
t.seth(0)
t.fd(-3)
t.pd()
t.begin_fill()
t.circle(3)
t.end_fill()
t.color((255,155,192),"white")
t.pu()
t.seth(90)
t.fd(-25)
t.seth(0)
t.fd(40)
t.pd()
t.begin_fill()
t.circle(15)
t.end_fill()
t.color("black")
t.pu()
t.seth(90)
t.fd(12)
t.seth(0)
t.fd(-3)
t.pd()
t.begin_fill()
t.circle(3)
t.end_fill()
#腮
t.color((255,155,192))
t.pu()
t.seth(90)
t.fd(-95)
t.seth(0)
t.fd(65)
t.pd()
t.begin_fill()
t.circle(30)
t.end_fill()
#嘴
t.color(239,69,19)
t.pu()
t.seth(90)
t.fd(15)
t.seth(0)
t.fd(-100)
t.pd()
t.seth(-80)
t.circle(30,40)
t.circle(40,80)
#身体
t.color("red",(255,99,71))
t.pu()
t.seth(90)
t.fd(-20)
t.seth(0)
t.fd(-78)
t.pd()
t.begin_fill()
t.seth(-130)
t.circle(100,10)
t.circle(300,30)
t.seth(0)
t.fd(230)
t.seth(90)
t.circle(300,30)
t.circle(100,3)
t.color((255,155,192),(255,100,100))
t.seth(-135)
t.circle(-80,63)
t.circle(-150,24)
t.end_fill()
#手
t.color((255,155,192))
t.pu()
t.seth(90)
t.fd(-40)
t.seth(0)
t.fd(-27)
t.pd()
t.seth(-160)
t.circle(300,15)
t.pu()
t.seth(90)
t.fd(15)
t.seth(0)
t.fd(0)
t.pd()
t.seth(-10)
t.circle(-20,90)
t.pu()
t.seth(90)
t.fd(30)
t.seth(0)
t.fd(237)
t.pd()
t.seth(-20)
t.circle(-300,15)
t.pu()
t.seth(90)
t.fd(20)
t.seth(0)
t.fd(0)
t.pd()
t.seth(-170)
t.circle(20,90)
#脚
t.pensize(10)
t.color((240,128,128))
t.pu()
t.seth(90)
t.fd(-75)
t.seth(0)
t.fd(-180)
t.pd()
t.seth(-90)
t.fd(40)
t.seth(-180)
t.color("black")
t.pensize(15)
t.fd(20)
t.pensize(10)
t.color((240,128,128))
t.pu()
t.seth(90)
t.fd(40)
t.seth(0)
t.fd(90)
t.pd()
t.seth(-90)
t.fd(40)
t.seth(-180)
t.color("black")
t.pensize(15)
t.fd(20)
#尾巴
t.pensize(4)
t.color((255,155,192))
t.pu()
t.seth(90)
t.fd(70)
t.seth(0)
t.fd(95)
t.pd()
t.seth(0)
t.circle(70,20)
t.circle(10,330)
t.circle(70,30)
网友评论