功能要求
使用海龟模块,利用循环嵌套、图形填充颜色的基本方法,绘制花朵。相关要点
(1)设置画笔颜色和填充颜色(2)填充颜色(3)移动画笔(4)抬笔(5)落笔(6)for循环(7)循环嵌套实现分析
花瓣可以简单的看成由两个圆弧组成,绘制花瓣时,可以通过绘制两个对称的圆弧来实现。圆弧实际上由很多小的线段组成,绘制线段是不断地旋转画笔即可。实例代码
importturtlet=turtle.Pen()forxinrange(90):t.forward(1)t.right(1)turtle.exitonclick()实现分析
forxinrange(90)::用for循环绘制圆弧。每次循环时都会绘制一个1步的线段,并让画笔向右旋转1°。t.forward(1):向前移动1步。t.right(1):向右转动1°。接下去画笔旋转90°,绘制同样的圆弧。运行结果
实例代码
importturtle1t=turtle.Pen()forxinrange(90):t.forward(1)t.right(1)t.right(90)forxinrange(90):t.forward(1)t.right(1)turtle.exitonclick()代码分析
利用两个for循环绘制出两个圆弧,组成一个花瓣形状。画圆弧的循环代码执行了两次,可以通过嵌套循环来简化程序。forxinrange(90):t.forward(1)t.right(1)之前画圆弧的代码。t.right(90):让画笔旋转90°。forxinrange(90):t.forward(1)t.right(1)画相同的一个圆弧。运行结果
实例代码
importturtlet=turtle.Pen()foryinrange(2):forxinrange(90):t.forward(1)t.right(1)t.right(90)turtle.exitonclick()2代码分析
for循环嵌套是在第一个for循环里面包含另一个for循环。foryinrange(2):forxinrange(90):t.forward(1)t.right(1)t.right(90)两个for循环嵌套。第一个for循环下面包含另一个for循环。forxinrange(90):t.forward(1)t.right(1)画圆弧的for循环。程序执行过程:1)首先导入海龟绘图模块,将变量t设置为海龟的画笔。2)执行“foryinrange(2)”语句,开始执行for循环,此for循环执行2次后结束循环。第一次循环时,for循环先访问range列表中第一个元素0,并将0存储在变量y中,变量y的值变为0。3)执行for循环内部的语句(缩进部分)。先执行“forxinrange(90)”语句,此for循环执行90次后结束。第1次循环时,访问range列表中的第一个元素0,并将0存储在变量x中,变量x的值变为0。然后执行第二个for循环内的语句(下一个缩进部分),先执行“t.forward(1)”语句画笔向前移动1步,在执行“t.right(1)”语句,画笔向右转动1°。然后进行第二个for循环(内循环),变量x的值变为1,画笔向前移动1步,向右转动1°。这样一直循环,指导第90次循环,变量x的值变为89,画笔向前移动1步,向右移动1°,结束第二个for循环,画出一段弧线。4)执行“t.right(90)”语句,画笔向右转90°,完成“foryinrange(2)”语句的第一次循环。5)再执行“foryinrange(2)”执行第二次循环,访问range列表中第二个元素“1”,并将“1”存储在变量y中,变量y的值变为了“1”。6)执行“forxinrange(90)”语句,重复步骤3),画出第二段弧线。7)执行“t.right(90)”语句,画笔向右转90°,完成循环,结束程序。运行结果
3绘制花朵
功能要求
画出六个同样的花瓣,可以组成一个花朵。实现分析
有六个花瓣组成了一个花朵,每个花瓣之间的夹角为360°/6=60°。绘制花朵时,每绘制完一个花瓣后,让画笔旋转60°,在绘制下一个花瓣,这样循环6次可绘制一个花豆。实例代码
importturtlet=turtle.Pen()foriinrange(6):forjinrange(2):forkinrange(90):t.forward(1)t.right(1)t.right(90)t.right(60)turtle.exitonclick()代码分析
三个循环的作用:第一个for循环,每循环一次绘制一个花瓣,循环6次形成一个花朵;第二个for循环,每循环一次绘制一个圆弧。循环2次形成一个花瓣;第三个for循环,每循环一次绘制一个1步长的小线段。循环90次形成一个圆弧。程序执行过程:1)首先导入海龟绘图模块,将变量t设置为海龟的画笔。2)执行“foriinrange(6)”语句,开始执行第一个for循环。此for循环会循环执行6次结束。第1次循环时,for循环先访问range列表中的第一个元素0,并将0存储在变量i中,变量i的值变为了0。3)执行第一个for循环内部语句(缩进部分),先执行“forjinrange(2)”语句,开始执行for循环,此for循环执行2次后结束循环。第一次循环时,for循环先访问range列表中第一个元素0,并将0存储在变量j中,变量j的值变为0。4)执行第二个for循环内部语句(缩进部分),先执行“forkinrange(90)”语句,此for循环执行90次后结束。第1次循环时,访问range列表中的第一个元素0,并将0存储在变量k中,变量k的值变为0。5)执行第三个for循环内部语句(缩进部分),先执行“t.forward(1)”语句画笔向前移动1步,在执行“t.right(1)”语句,画笔向右转动1°。然后进行第二个for循环(内循环),变量4k的值变为1,画笔向前移动1步,向右转动1°。这样一直循环,指导第90次循环,变量k的值变为89,画笔向前移动1步,向右移动1°,结束第二个for循环,画出一段弧线。6)执行第二个for循环缩进部分的“t.right(90)”语句,画笔向右转90°,完成“forjinrange(2)”语句的第一次循环。7)运行“forjinrange(2)”执行第二次循环,访问range列表中第二个元素“1”,并将“1”存储在变量j中,变量j的值变为了“1”。8)执行第二个for循环缩进部分的语句。即执行“forkinrange(90)”语句,重复步骤4)和步骤5),画出第二段弧线。之后,再执行第二个for循环缩进部分的“t.right(90)”语句,画笔向右转90°,完成第二个for循环的第2次循环。9)执行第一个for循环中的缩进部分“t.right(60)”语句,画笔向右转60°,完成第一个for循环的第1次循环。10)开始第一个for循环的第2次循环,重复步骤3)~步骤9),完成第2次循环,画出两个花瓣。一直循环,直到第一个for循环完成6次循环后,结束程序,画出一个花朵。运行结果
为花朵着色
功能要求
给花朵画上漂亮的颜色。实现分析
使用海龟绘图中的color()语句(设置画笔颜色和填充颜色)、begin_fill()语句(开始填充颜色)和end_fill()语句(结束填充颜色)实例代码
importturtlet=turtle.Pen()t.color('yellow','pink')t.begin_fill()foriinrange(6):forjinrange(2):forkinrange(90):5t.forward(1)t.right(1)t.right(90)t.right(60)t.end_fill()turtle.exitonclick()代码分析
t.color('yellow','pink'):设置画笔颜色和填充颜色。有两个参数,第一个参数为画笔颜色(yellow),第二个参数为填充颜色(pink)程序运行绘制图形。t.begin_fill()与t.end_fill()需要一起使用来填充颜色。t.begin_fill()为准备开始填充图形,在绘制语句的前面;t.end_fill()为完成填充的意思,在绘制图形部分语句的后面。注意:t.begin_fill()与t.end_fill()语句不在for循环中。运行结果
绘制多个花朵
功能要求
绘制多个花朵实现分析
当绘制多个花朵时,需要在绘制完一个花朵后移动画笔。海龟绘画中移动画笔的语句为goto()语句。在移动画笔前需要先将画笔抬起,否则就会在移动画笔的过程中画出线条,抬笔的语句为penup()。另外在移动好画笔后,需要将画笔再落下,裸奔的语句为pendown()。实例代码importturtlet=turtle.Pen()t.color('yellow','pink')t.begin_fill()foriinrange(6):forjinrange(2):forkinrange(90):6t.forward(1)t.right(1)t.right(90)t.right(60)t.end_fill()t.penup()t.goto(200,0)t.pendown()t.color('pink','yellow')t.begin_fill()foriinrange(10):forjinrange(2):forkinrange(2):t.forward(35)t.right(60)t.right(60)t.right(36)t.end_fill()turtle.exitonclick()代码分析
t.begin_fill()foriinrange(6):forjinrange(2):forkinrange(90):t.forward(1)t.right(1)t.right(90)t.right(60)t.end_fill()此部分语句为绘制粉色的花朵。t.penup():将画笔抬起,这样移动画笔是,就不会出现线条了。t.goto(200,0):移动画笔。括号中你那个的参数为坐标,200为x轴,0为y轴t.pendown():将画笔落下,移动画笔时,就会画出线条。t.color('pink','yellow')t.begin_fill()foriinrange(10):7forjinrange(2):forkinrange(2):t.forward(35)t.right(60)t.right(60)t.right(36)t.end_fill()此部分为绘制黄色的花豆运行结果
设置填充颜色
功能要求
画矩形并填充矩形颜色。实例代码
importturtlet=turtle.Turtle()t.begin_fill()foriinrange(4):t.forward(100)t.left(90)t.end_fill()turtle.exitonclick()运行结果
实例代码
8importturtlet=turtle.Turtle()t.begin_fill()t.fillcolor('red')foriinrange(4):t.forward(100)t.left(90)t.end_fill()turtle.exitonclick()运行结果
绘制彩色的房子
功能要求
绘制淡蓝色的房顶,紫色房身。实例代码
importturtlet=turtle.Turtle()t.begin_fill()t.fillcolor('#ccffff')t.forward(250)t.left(150)t.forward(144)t.left(60)t.forward(144)t.end_fill()t.up()t.left(150)t.down()t.begin_fill()t.fillcolor('#6666CC')t.forward(50)t.right(90)t.forward(120)9t.left(90)t.forward(150)t.left(90)t.forward(120)t.end_fill()turtle.exitonclick()运行结果
10
因篇幅问题不能全部显示,请点此查看更多更全内容