主要内容 #
- 函数在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绘制图形
import turtle
turtle.tracer(False)#暂时不显示turtle绘制图形
pentagram(turtle,0,0)#调用pentagram()函数
turtle.tracer(True)
turtle.done()#显示turtle绘制图形
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()
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()
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】 倒序数 – ★★★