Turtle(3)
前情提要
内容提要
案例解析
案例1:HELLO (被作者吃掉的WORLD)
import turtle as t
t.setup(600,200)
# 画H
t.penup() # 提笔
t.goto(-270, -50) # 移动到起点
t.pensize(10) # 设置笔的画笔粗细
t.pendown() # 落笔
t.goto(-270, 50) # 画竖
t.goto(-270, 0) # 移动到中间
t.goto(-225,0) # 画横
t.goto(-225, 50) # 向上画竖
t.goto(-225,-50) # 向下画竖
# 画E
t.penup()
t.goto(-165, 50)
t.pendown()
t.goto( -210, 50)
t.goto(-210, 0)
t.goto(-165, 0)
t.goto(-210, 0)
t.goto(-210, -50)
t.goto(-165, -50)
# 画L
t.penup()
t.goto(-150, 50)
t.pendown()
t.goto(-150, -50)
t.goto(-100, -50)
# 画L
t.penup()
t.goto(-80, 50)
t.pendown()
t.goto(-80, -50)
t.goto(-30, -50)
# 画O
t.penup()
t.goto(-20+10, 50)
t.pendown()
t.goto(40, 50)
t.goto(40, -50)
t.goto(-10, -50)
t.goto(-10, 50)
t.done()
效果图
代码分析
别问,问就是一行一行码过来
也别问为什么只有第一个有注释,因为,章老师不想侮辱你们的智商.
这是一个简单的画横画竖的小程序.唯一要做的事情,就是计算好坐标,然后移动到指定位置,开画就好.
案例2:画一个五角星
画一个五角星
import turtle as t
t.setheading(288) # 设置初始角度
for i in range(5):
t.forward(100)
t.right(144)
t.done()
效果图
代码分析:
- 导入turtle 包,并起了个别名:t
import turtle as t
- 设置方向
t.setheading(288) # 设置初始角度
# 也可以写成 t.right(72)
这段代码不是必须的.看你往哪个方向画而已.
即,如果没有这段代码,后续画出来的,仍然是一个五角星.
- 画五角星的循环代码
for i in range(5):
t.forward(100)
t.right(144)
这个循环做了五次,分别画五角星的五条边
forward()的参数是五条边的长度
right()的参数是固定的角度.因为五角星的每一个角的大小为36度,因此,转向的时候要右转144度
案例3:给五角星上色
import turtle as t
t.setheading(288)
t.fillcolor("yellow")
t.begin_fill()
for i in range(5):
t.forward(100)
t.right(144)
t.end_fill()
t.done()
效果图
代码分析:
- 设定填充颜色
t.fillcolor("yellow")
fillcolor()的参数同样是颜色的英语拼写.
这个必须在begin_fill()之前设置
- 设定从哪里开始填充
t.begin_fill()
- 设定到结束位置
t.end_fill()
注意:
填充颜色的三连:设置颜色,开始,结束
如果图形是不封闭的,会自动给你弄成封闭的.
看一下如下代码:
import turtle as t
t.setheading(288)
t.fillcolor("yellow")
t.begin_fill()
for i in range(2):
t.forward(100)
t.right(144)
t.end_fill()
t.done()
效果如下:
可以看到,当图形不封闭的时候,也会给你填充进去,最后不封闭的地方,会给你自动当成封闭的图形去处理
案例4:画个圈圈
import turtle as t
t.circle(100)
t.done()
效果图
import turtle as t
t.circle(-100)
t.done()
注意看两个圆的箭头位置
案例5:残缺的美——圆弧
import turtle as t
t.circle(100, 180)
t.done()
效果图
代码分析
circle()
第一个参数:圆的半径
第二个参数:圆弧所对圆心角的度数
案例6:画正多边形
import turtle as t
t.circle(100,360, 5) # 三个参数齐全,画正五边形
t.circle(100, steps=10) # 加上steps 可以省略第二个参数
t.done()
效果图
代码分析
t.circle(100,360, 5) # 三个参数齐全,画正五边形
第一个参数:正多边形外接圆的半径
第二个参数:圆弧的圆心角
第三个参数:正多边形的边数,
要求正整数,
负数无效,
0会报错:除0错误
t.circle(100, steps=10) # 加上steps 可以省略第二个参数
第一个参数:正多边形外接圆的半径
第二个参数:要加上steps ,这样可以省略第二个参数不写. 要求同上,必须为正整数
小结:
- 填充三步曲:设置颜色, 开始, 结束
- circle()函数三用:画圆,画弧,画正多边形
可能 结合填充实现更丰富的效果
后记:
这篇的内容,改稿了好几次,因为选用的例子不同,内容也大不一样.
下一篇会讲一些turtle中画一些比较有意思的例子,来加强两方面内容:
- python的三大程序结构
- turtle库的常用函数