1、正方形的绘制
正方形如下图所示
思路分析:首先得知道正方形的特点,画一个正方形可从起点绕一圈回到起点,外角和为360°;有4条边,那么外角为360°÷4=90°。所以每次转角都为90°。知道了正方形的特性,就能实现代码了,如下:
# turtle正方形绘制import turtle as t # 用别名t代替turtle库的使用t.pensize(5) # 画笔大小设置为5像素for i in range(4): # 有4条边,所以我们要画四次,用循环实现t.fd(200) # 每次画200像素的长度t.left(90)# 在每次画完200像素的长度后,转90°t.done() # 停止画笔,结束绘画
2、正六边形的绘制
正六边形如下图所示
思路分析:先得知道正六边形的特点,外角和为360°,有六条边,所以外角是360°÷6=60°,所以每次转角为60°。知道了正六边形的特点,那么用代码实现起来就很容易了,如下:
# turtle六边形绘制import turtle as t# 用别名t代替turtle库的使用t.pencolor("white")# 画笔颜色先调为白色t.goto(0, -200) # 小乌龟先移动到坐标(0,-200)处t.pensize(5) # 画笔大小设置为5像素t.pencolor("black")# 画笔颜色调为黑色色for i in range(6):# 有6条边,所以我们要画6次,用循环实现t.fd(200) # 每次画200像素的长度t.left(60)# 在每次画完200像素的长度后,转90°t.done()# 停止画笔,结束绘画
3、叠边形的绘制
叠边形如下图所示
题目要求:使用turtle库,绘制一个叠边形,其中,叠边形内角为100度。 思路分析:(分析一,顺承正方形与正六边形解题思路)小乌龟从起点开始绘制,回到起点,所以得到图形的外角和为360°的整数倍。又因为叠边形有9条边,故外角为360°n÷9=40°×n,观察可知外角比40°大,比直角90°小,故外角为80°。
(分析二,依据题目意思分析)根据题目意思,叠边形的内角为100°,我们默认为这是个正叠边形,即每个内角都是100°,那么每个外角就都是80°了,那么每次的转角就是80°。数一数,一共有九条边。所以我们每次让小乌龟前进200像素,之后转80°,循环9次就能画出叠边形了。
分析清楚,那么代码也能很容易实现出来,如下:
# turtle叠边形绘制import turtle as t# 用别名t代替turtle库的使用t.pencolor("white")# 画笔颜色先调为白色t.goto(0, -200) # 小乌龟先移动到坐标(0,-200)处t.pencolor("black")# 画笔颜色调为黑色t.pensize(5) # 画笔大小设置为5像素for i in range(9):# 有9条边,所以要画9次,用循环实现t.fd(200) # 每次画200像素的长度t.left(80)# 在每次画完200像素的长度后,转80°t.done()# 停止画笔,结束绘画
画完了,观察运行的程序,一共9条边,2圈,每次左转角度为80°,
改变下线条的宽度,看的更直观些。
# turtle叠边形绘制import turtle as t# 用别名t代替turtle库的使用t.pencolor("white")# 画笔颜色先调为白色t.goto(0, -200) # 小乌龟先移动到坐标(0,-200)处t.pencolor("black")# 画笔颜色调为黑色t.pensize(5) # 画笔大小设置为5像素for i in range(4):# 有9条边,先画前4条边,用循环实现t.fd(200) # 每次画200像素的长度t.left(80)# 在每次画完200像素的长度后,转80°t.pencolor("green")# 画笔颜色调为绿色t.pensize(2) # 画笔大小设置为2像素for i in range(5):# 把后面5条边画完,用循环实现t.fd(200) # 每次画200像素的长度t.left(80)# 在每次画完200像素的长度后,转80°t.done()# 停止画笔,结束绘画