主要内容 #
- 函数在turtle中的应用
简易风力发电机(3):图形的隐藏与显示 #
在turtle绘制图形中,我们有时候希望暂时不要显示turtle的绘制动画,而是等到整个图形绘制完成后再显示,tracer()函数可以帮助我们实现相关功能,以我们上节课编写的五角星为例。在调用pentagram()函数之前,我们应该首先将上节课pentagram()和mymove()函数的定义粘贴过来,这里并没有定义!import turtle turtle.tracer(False)#暂时不显示turtle绘制图形 pentagram(turtle,0,0)#调用pentagram()函数 turtle.tracer(True) turtle.done()#显示turtle绘制图形
简易风力发电机(4):简易风力发电机的绘制 #
在前面的python课程中我们学习了,python函数的定义和调用,使用函数,程序的编写、阅读、测试和修复都将更容易。在turtle的复杂绘图中我们可以编写多个函数,每个都做一件具体的工作,这有助于将复杂的任务划分成一系列的小步骤来完成。import turtle ############################ def mymove(myturtle,x,y):#定义一个函数名字为mymove()的函数,该函数有三个参数,功能是把画笔移动到指定位置 myturtle.penup() myturtle.goto(x,y) myturtle.pendown() def myregisiter():#定义一个名为myregisiter()的函数,该函数没有参数,功能是注册风力发电机旋转臂的图标 mymove(turtle,0,0) turtle.penup()#画笔抬起 turtle.begin_poly() # 绘制风力发电机的铁臂并注册图标 for i in range(2):#绘制一个长方形 turtle.forward(120) turtle.circle(2.5,180) turtle.end_poly() p = turtle.get_poly() turtle.register_shape('myshape', p) def body():#定义body()函数,该函数没有参数,功能是画出风力发电机的支架 mymove(turtle,0,0) turtle.pensize(7) turtle.goto(0, -300) mymove(turtle,0,0) turtle.dot(20)#绘制一个直径为20的点 def lable(str1):#定义名为lable的函数,该函数功能是给风力发电机写标签 mymove(turtle,0,150) turtle.write(str1, align="center",font=("Courier", 20, "bold")) ############################ turtle.bgcolor('pink') turtle.pencolor('white') turtle.tracer(False)#暂时不显示turtle绘制图形 body()#风力发电机的支架 lable('大师码')#写入风力发电机的标签 myregisiter()#注册画笔图形 myturtle=[turtle.Turtle(),turtle.Turtle(),turtle.Turtle()]#用三个turtle画笔来表示风力发电机的旋转臂 for i in range(3):#画笔设置 myturtle[i].shape('myshape') myturtle[i].fillcolor('white') myturtle[i].setheading(i * 120) turtle.tracer(True)#显示turtle绘制的图形 for i in range(720):#画笔的动画设置 myturtle[i%3].setheading(i*122) turtle.done()事实上关于上述风力发电机的绘制,我们把它分成了支架(dody())、旋转臂、标签(lable())三个部分。旋转臂的动画设置我们上一节课提到过,包括画笔形状注册、画笔的形状设置、画笔的动画设置。mymove()和myregisiter()函数我们在上节课已经写好了,这里直接拿来使用就可以了
OJ训练题 #
1、【例25.2】 26个兄弟姐妹2 – ★
2、【例37.3】 菱形图形 – ★
3、【入门】纯粹合数 – ★
4、【入门】连续递增或递减数 – ★★
5、【例47.1】 倒序数 – ★★★