#蛇.py import turtle #引入海龟库 turtle.setup(650,350,200,200) #setup(宽,高 , 坐标,坐标)设置窗体大小及位置,4个参数后两个可选(不是必须函数) turtle.penup() #画笔抬起 turtle.fd(-250) #前进-250个像素 turtle.pendown() #画笔落下 turtle.pensize(25) #改变画笔尺寸为25像素 turtle.pencolor("purple") #使画笔为紫色 turtle.seth(-40) #改变海龟方向为绝对40度(正右方为绝对0度) for i in range (4): #循环4次 turtle.circle(40,80) #改变海龟行进轨迹(40度为半径,绘制80度) turtle.circle(-40,80) #改变海龟行进轨迹 (反向40度为半径,绘制80度) turtle.circle(40,80/2) turtle.fd(40) #前进40像素 turtle.circle(16,180) #(r,angle) turtle.fd(40*2/3) #前进40*2/3像素 turtle.done() #提供手工关闭窗体离开选项
开头所给出来的一个代码仅是画一条简单的蛇,还有一些其他个人感觉在简单图形绘制中比较实用的代码.
其实只要理解其中的内容就可以画出许多想要的简单图形了。
个人有三个点要着重理解:
1)循环: for i in range()
循环的使用可以省去我们很多的步骤,同时也可以规避一些不必要的麻烦和使代码更整洁。
例如在画一条蛇中,我没必要再去把缩进中的函数copy4次。这就是最直观的效果。
2) 角度:海龟角度是用left,right ;绝对角度是用seth。
这个理解起来并不难,关键得灵活运用。在一些必要的“扭头”动作,如果想不明白就直接seth,当然在循环体中则需要看需取用了。
3)缩进:
缩进放不好,歪图没得跑。这是要细心留意的。
对于运用turtle库进行基本图像绘制,其实并没有太多的讲究。
最简单的方式就是自己画一下。
例如你想画个五角星,你用笔是怎么画的,那么你用py就是怎么画。
熟悉py的绘制方式,就可以轻松运用py进行简单图形绘制。
接下来就引入自己画五角星的一个例子:
#画一个五角星 import turtle #引入 turtle.setup(650,500,200,200) #设置窗体尺寸 turtle.pensize(1) #设置笔的尺寸(海龟身材) turtle.fillcolor("red") #设置填充颜色 turtle.begin_fill() #开填 for i in range(5): #循环5次 turtle.fd(200) #前进200像素 turtle.left(216) #海龟向左转216° turtle.end_fill() #结束填充
在做这个东西的时候,我会自己先尝试在纸上画一个五角星。并记录自己的步骤。
然后再算出必要的角度问题。
做到这里呢,基本上就能够明白五角星到底是怎么画的了。
我们都知道py引入海龟库画图的原理:一个具有“方向感”的海龟在“游泳”。
我们所需要做的也仅仅是让海龟按照我们的意图去游而已。
如何做到这一前提?
显然你是要熟悉海龟库中的函数。
很多函数开始学是会有点点晕。
但一点点熟悉起来还是很好理解的,多用就行。
当然在愈发复杂的图形中画图思路想出来是很困难的一件事情。
这就需要多多开动脑筋思考了。
附:turtle函数(网上摘录)
画笔的属性
画笔(画笔的属性,颜色、画线的宽度等)
1) turtle.pensize():设置画笔的宽度;
2) turtle.pencolor():没有参数传入,返回当前画笔颜色,传入参数设置画笔颜色,可以是字符串如"green", "red",也可以是RGB 3元组。
3) turtle.speed(speed):设置画笔移动速度,画笔绘制的速度范围[0,10]整数,数字越大越快。
命令 |
说明 |
turtle.forward(distance) |
向当前画笔方向移动distance像素长度 |
turtle.backward(distance) |
向当前画笔相反方向移动distance像素长度 |
turtle.right(degree) |
顺时针移动degree° |
turtle.left(degree) |
逆时针移动degree° |
turtle.pendown() |
移动时绘制图形,缺省时也为绘制 |
turtle.goto(x,y) |
将画笔移动到坐标为x,y的位置 |
turtle.penup() |
提起笔移动,不绘制图形,用于另起一个地方绘制 |
turtle.circle() |
画圆,半径为正(负),表示圆心在画笔的左边(右边)画圆 |
setx( ) |
将当前x轴移动到指定位置 |
sety( ) |
将当前y轴移动到指定位置 |
setheading(angle) |
设置当前朝向为angle角度 |
home() |
设置当前画笔位置为原点,朝向东。 |
dot(r) |
绘制一个指定直径和颜色的圆点 |
turtle.fillcolor(colorstring |
绘制图形的填充颜色 |
turtle.color(color1, color2) |
同时设置pencolor=color1,fillcolor=color2 |
turtle.filling() |
返回当前是否在填充状态 |
turtle.begin_fill() |
准备开始填充图形 |
turtle.end_fill() |
填充完成 |
turtle.hideturtle() |
隐藏画笔的turtle形状 |
turtle.showturtle() |
显示画笔的turtle形状 |
turtle.mainloop()或turtle.done() |
启动事件循环 -调用Tkinter的mainloop函数。 必须是乌龟图形程序中的最后一个语句。 |
|||||||||
turtle.mode(mode=None) |
设置乌龟模式(“standard”,“logo”或“world”)并执行重置。如果没有给出模式,则返回当前模式。
|
|||||||||
turtle.delay(delay=None) |
设置或返回以毫秒为单位的绘图延迟。 |
|||||||||
turtle.begin_poly() |
开始记录多边形的顶点。当前的乌龟位置是多边形的第一个顶点。 |
|||||||||
turtle.end_poly() |
停止记录多边形的顶点。当前的乌龟位置是多边形的最后一个顶点。将与第一个顶点相连。 |
|||||||||
turtle.get_poly() |
返回最后记录的多边形。
|