#蛇.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”)并执行重置。如果没有给出模式,则返回当前模式。

模式

初始龟标题

正角度

standard

向右(东)

逆时针

logo

向上(北)

顺时针

 

turtle.delay(delay=None)

设置或返回以毫秒为单位的绘图延迟。

turtle.begin_poly()

开始记录多边形的顶点。当前的乌龟位置是多边形的第一个顶点。

turtle.end_poly()

停止记录多边形的顶点。当前的乌龟位置是多边形的最后一个顶点。将与第一个顶点相连。

 

turtle.get_poly()

返回最后记录的多边形。

                

 

posted on 2020-03-14 13:05  动物园天下第一  阅读(956)  评论(1编辑  收藏  举报