前言:
眼前看官们对“python乌龟画图有循环语句”大致比较看重,咱们都需要学习一些“python乌龟画图有循环语句”的相关文章。那么小编在网上汇集了一些有关“python乌龟画图有循环语句””的相关资讯,希望大家能喜欢,我们一起来了解一下吧!python练习之turtle画图:
Turtle库是Python语言中一个很流行的绘制图像的函数库,俗称乌龟,在一个横轴为x、纵轴为y的坐标系原点,(0,0)位置开始,它根据一组函数指令的控制,在这个平面坐标系中移动,从而在它爬行的路径上绘制了图形。
今天学习用turtle做一个动态的时钟,主要方法如下:
1.forward():
向前移动指定的距离。参数:一个数字(integer or float))。
turtle.forward(25)
2.backward() | back():
向后移动指定的距离。参数:一个数字(integer or float))。
turtle.backward(30)
3..right():
以角度单位向右转动。参数:一个数字(integer or float))。单位默认为度数,可以通过degrees()和radians()进行设置。
turtle.right(45)
4.left():
以角度单位向左转动。参数:一个数字(integer or float))。单位默认为度数,可以通过degrees()和radians()进行设置。
turtle.left(45)
5.goto() | steps() | setposition():
移动到绝对位置,如果笔落下,画线,不改变方向。参数:x-一个数字或一对数字。y-一个数字或None。
turtle.setpos(60,30)
6.setx():
设置第一个坐标的值即X方向。参数:一个数字(integer or float))。
turtle.setx(10) #(10,0)
7.sety():
设置第二个坐标的值即Y方向。参数:一个数字(integer or float))。
turtle.sety(10) #(0,10)
8.setheading() | seth():
将方向设置为to_angle.就是东西南北方向。具体如下:
标准模式:0 - 东 90 - 北 180 - 西 270 - 南 标志模式 0- 北 90- 东 180- 南 270 - 西
turtle.setheading(90)
9.home() :
移动到原点 - 坐标(0,0):并将其标题设置为其起始方向(取决于模式)。
turtle.home() # (0.00,0.00)默认home就在屏幕中心。
10.circle():
绘制一个给定半径的圆。参数:radius-一个数字(半径,如果值为正则逆时针,负数为顺时针),extent-一个数字()steps- 执行的步数。
turtle.circle(120,180,5)
11.dot() :
用颜色画出一个直径大小的圆点。参数:size-一个大于1的整数,可None。默认用的是pensize+4和2*pensize的最大值,color-颜色值
turtle.dot(20, "blue")
12.undo():
撤销最后的动作。
13.speed():
将速度设置为0..10范围内整数。如果没有参数,则返回当前速度。如果大于10或者小于0.5,则速度设置为0 。
“最快”:0 :直接成图,没有动画效果
“快”:10:大概一秒
“正常”:6:
“慢”:3
“最慢”:1
14:position() | pos():
返回当前的位置。
turtle.pos() # (0.00,0.00)
15.pendown() | pd() | down():
放下笔,移动的时候绘图。
16.penup() | pu() | up():
将提起笔,移动时无图。
17.pensize():
设置线条的粗细。参数:width-一个正数
18.pencolor():
设置笔的颜色。
19.fillcolor():
笔的填充色。
20.color():
同时设置pencolor和fillcolor
21.filling():
返回fillstate状态,如果填充则返回True,反之False。
22.begin_fill():
在绘制要填充的形状前调用。当然在调用完还需要end_fill()。
23.reset():
重置,将屏幕中的图纸删除,重新居中并将所有变量设置为默认值。
24.clear():
删除图纸。对属性不做操作。
25.write():
写文本。参数:arg-要写入的对象。move-是否移动。align-对齐方式:left,right,center。font-字体。fontname,fontsize,fonttype。
26.hideturtle() | ht() :
删隐藏乌龟的形状,在做复杂绘图的时候隐藏的时候有利于提高绘图速度。
27.showturtle() | st():
显示乌龟的形状。
28.shape():
设置乌龟的图形形状,取值:“arrow”, “turtle”, “circle”, “square”, “triangle”, “classic”
29.isvisible():
乌龟是否可见。如果可见返回True,反之则False。
30.resizemode():
参数:rmode取值:"auto","user","noresize".
31.shapesize() | turtlesize() :
返回笔的属性。
32.shearfactor():
设置或者返回但钱的剪切因子。
33.get_shapepoly():
返回当前形状的坐标。
34.onclick():
鼠标点击事件。参数:fun-一个带有两个参数的函数,这些参数将与画布上单击点的坐标一个调用。num-鼠标按钮的数量,默认为1(左键)。add- True的时候将添加新的绑定。否则替换以前的绑定。
35.onrelease():
鼠标释放事件。参数同点击事件。
36.ondrag():
鼠标移动事件。参数同点击事件。
37.begin_poly():
开始记录多边形的顶点。
38.end_poly():
停止记录多边形的顶点。
39.get_poly():
返回最后记录的多边形。
40.getturtle() | getpen() :
获取trutle对象本身。
41.bgcolor():
设置或者返回当前的TurtleScreen的背景颜色。
42.delay():
设置或返回以毫秒为单位的绘制延迟,延迟越大,绘图越慢。
43.ontimer():
定时器。
44.mainloop() | done() :
开始循环 。
45.textinput() | numinput():
弹出一个输入字符串和数字的窗口。
46.mode():
三种方式:“standard”, “logo” or “world”
下面是做出的效果图以及python代码,初始化,绘制表盘,动态显示指针,大家慢慢体会。
import turtlefrom datetime import *def skip(step): turtle.penup() turtle.forward(step) turtle.pendown()def mkhand(name,length): turtle.reset() skip(-length*0.1) turtle.begin_poly() turtle.forward(length*1.1) turtle.end_poly() handform=turtle.get_poly() turtle.register_shape(name,handform)def init(): global sechand,minhand,hourhand,out turtle.mode('logo') mkhand("sechand",135) mkhand("minhand",125) mkhand('hourhand',90) sechand=turtle.Turtle() sechand.shape('sechand') minhand=turtle.Turtle() minhand.shape('minhand') hourhand=turtle.Turtle() hourhand.shape('hourhand') for hand in sechand,minhand,hourhand: hand.shapesize(1,1,3) hand.speed(0) out=turtle.Turtle() out.hideturtle() out.penup()def setupclock(r): turtle.reset() turtle.pensize(7) turtle.pencolor('red') turtle.fillcolor('green') for i in range(60): skip(r) if i%5==0: turtle.forward(20) skip(-r-20) skip(r+20) if i==0: turtle.write(12,align='center',font=("Courier", 14, "bold")) elif i==30: skip(25) turtle.write(i//5,align='center',font=("Courier", 14, "bold")) skip(-25) elif i==25 or i==35: skip(20) turtle.write(i//5,align='center',font=("Courier", 14, "bold")) skip(-20) else: turtle.write(i//5,align='center',font=("Courier", 14, "bold")) skip(-r-20) else: turtle.dot(5) skip(-r) turtle.right(6)def dida(): t=datetime.today() second=t.second+t.microsecond*0.000001 minute=t.minute+second/60.0 hour=t.hour+minute/60.0 sechand.setheading(6*second) minhand.setheading(6*minute) hourhand.setheading(30*hour) turtle.tracer(False) out.forward(65) out.write(week(t),align='center',font=("Courier", 14, "bold")) out.back(130) out.write(date(t),align='center',font=("Courier", 14, "bold")) out.home() turtle.tracer(True) turtle.ontimer(dida,100)def week(t): wk=['星期一','星期二','星期三','星期四','星期五','星期六','星期日'] return wk[t.weekday()]def date(t): y=t.year m=t.month d=t.day return "%s-%d-%d" %(y,m,d)def main(): turtle.tracer(False) init() setupclock(160) turtle.tracer(True) dida() turtle.mainloop()if __name__ == "__main__": main()
刚开始学python,感觉确实很高效。
标签: #python乌龟画图有循环语句