Python turtle库的应用——蛇
turtle库介绍
1、Turtle中的turtle.setup()函数用于启动一个图形窗口,它有四个参数
turtle.setup(width, height, startx, starty)
分别是:启动窗口的宽度和高度表示窗口启动时,窗口左上角在屏幕中的坐标位置。
我们所使用的显示屏幕也是一个坐标系,该坐标系以左上角为原点,向左和向下分别是x轴和y轴。蟒蛇程序代码启动一个1300像素宽、800像素高的窗口,该窗口的左上角是屏幕的左上角。
(startx,starty)表示画的初始点,(0,0)表示位于电脑屏幕中心
2、Turtle中的turtle.pensize()函数表示小乌龟运动轨迹的宽度。
3、Turtle中的turtle.pencolor()函数表示小乌龟运动轨迹的颜色。
它包含一个输入参数,这里我们把它设为蓝色,blue,其他颜色单词也可以使用。Turtle采用RGB方式来定义颜色,如果希望获得和图片中颜色一致的小蛇,请输入turtle.pencolor(“#3B9909”)
4、Turtle中的turtle.seth(angle)函数表示小乌龟启动时运动的方向。它包含一个输入参数,是角度值。
其中,0表示向东,90度向北,180度向西,270度向南;负值表示相反方向。程序中,我们让小乌龟向-40度启动爬行,即:向东南方向40度。
5、turtle.circle()函数让小乌龟沿着一个圆形爬行
参数rad描述圆形轨迹半径的位置,这个半径在小乌龟运行的左侧,rad远位置处。如果 rad为负值,则半径在小乌龟运行的右侧, 参数angle表示小乌龟沿着圆形爬行的弧度值。
6、turtle.fd()函数也可以用turtle.forward()表示乌龟向前直线爬行移动表示小乌龟向前直线爬行移动,
它有一个参数表示爬行的距离
7、详细参数描述
程序1
import turtle def drawSnake(rad,angle,num,neckrad): for i in range(num): turtle.circle(rad,angle) turtle.circle(-rad,angle) turtle.circle(rad,angle/2) turtle.fd(rad) turtle.circle(neckrad+1,180) turtle.fd(rad*2/3) def main(): turtle.setup(1300,800,0,0) pythonsize=30 turtle.pensize(pythonsize) turtle.pencolor('blue') turtle.seth(-40) drawSnake(40,80,3,pythonsize/2) main()
2、更改颜色
3、三角形
import turtle turtle.setup(1000,1000,0,0) size=20 turtle.pensize(size) turtle.color("red") length=200 turtle.seth(0) turtle.fd(length) turtle.seth(120) turtle.fd(length) turtle.seth(240) turtle.fd(length)
4、五角星
from turtle import * color("yellow","red") pensize(10) begin_fill()#和end_fill成对出现,填充起点和终点 while True: forward(200) right(144) if abs(pos())<1:#获取位置的绝对值 break end_fill()
import turtle turtle.pensize(10) turtle.fillcolor("red") turtle.begin_fill() for i in range(5): turtle.fd(200) turtle.right(144) turtle.end_fill()
比较上面两段代码,第一种通过计算位置距离结束while循环,第二种通过确定数目的if循环结束程序。
第一种通过from turtle import * 引入turtle库,程序中调用函数,不用再加turtle.前缀,第二种通过import turtle引入turtle库,调用函数需要加turtle.前缀。
5、太阳花
1 from turtle import * 2 color("yellow","red") 3 pensize(3) 4 begin_fill()#和end_fill成对出现,填充起点和终点 5 while True: 6 forward(200) 7 right(165) 8 if abs(pos())<1:#获取位置的绝对值 9 break 10 end_fill()
更改旋转角度,得到漂亮的花