1、 要求:利用turtle库函数绘制一个没有角的正方形,程序运行效果如图2.10所示。
分析:由图2.10可以看出,画笔首先抬起。然后向前移动一定距离,接着画笔落下,继续向前移动一定距离,之后画笔再次抬起并向前移动一定距离,这样就可以完成一整条边的绘制。画笔向左转90°,重复刚才的步骤绘制另一条边,直到绘制完四条边后画笔回到起始位置。
实验步骤:
1)添加并完善程序代码
新建文件,输入以下代码,请在……处使用一行或多行代码替换。
……
for i in range(4):
……
2)保存并运行程序
将文件保存为PY20302.py,运行程序,验证程序的正确性并观察程序执行效果。
3)提示
本例中利用for 循环完成图形绘制,每条边的绘制画笔都要经过抬起、落下和再抬起的过程,每次抬起后移动的距离都相等,并且等于落下时移动距离的一半。
import turtle #引入库
turtle.pensize(5) #调整画笔粗细
turtle.pencolor("black") #画笔颜色,参数可以为颜色的字符串,也可以为RGB值
for i in range(4): #利用遍历循环实现重复步骤
#抬起画笔,之后移动移动turtle不会留下痕迹,不需要函数参数
turtle.penup()
turtle.fd(50) #向海龟当前的正前方运动50个像素
turtle.pendown() #落下画笔
#抬起后移动的距离等于落下时移动距离的一半
turtle.fd(100)
turtle.penup()
turtle.fd(50)
turtle.pendown()
turtle.left(90) #在当前前进方向上,向左转90度
turtle.done() #程序运行结束后窗口不会自动关闭
2、 要求:利用turtle绘制交叉三环图形,程序运行效果如图2.11所示。
分析:由图2.11可以看出,交叉三环的颜色分别为红色、绿色和蓝色,且3个圆形的半径都相等。可以先画上面的红色圆,然后画笔回到初始位置,并且此时朝向为绝对0°。接着,画笔向左转一定的角度后继续画左侧的绿色圆。最后,画笔重复刚才的操作画右侧的蓝色圆。
import turtle
#绘制第一个圆,半径为100,红色。
turtle.penup() #抬起画笔,之后移动移动turtle不会留下痕迹,不需要函数参数。
turtle.goto(-50,50) #让海龟前往某一绝对坐标位置,以画布中心为(0,0)进行坐标系的划分。
turtle.pendown() #放下画笔。
turtle.color('red') #选择画笔颜色为红,参数可以为颜色的字符串,也可以为RGB值。
turtle.circle(100)
#绘制第二个圆,半径为100,绿色。
turtle.penup()
turtle.goto(-50,50) #回到原点。
#改变海龟头部朝向(前进方向),以水平向右为0度/360度,竖直向上为90度。
turtle.seth(0) #此处为朝向0度。
turtle.left(120) #在当前前进方向上,向左转120度。
turtle.fd(10) #向海龟当前的正前方运动10个像素。
turtle.pendown()
turtle.color('green')
turtle.circle(100)
#绘制第三个圆,半径为100,蓝色。
turtle.penup()
turtle.goto(-50,50)
turtle.seth(0)
turtle.right(120) #在当前前进方向上,向右转120度。
turtle.fd(10)
turtle.pendown()
turtle.color('blue')
turtle.circle(100)
turtle.done() #程序运行结束后窗口不会自动关闭