儿童学python趣味100课-第90课
复习昨天的内容
上节课布置的作业大家完成了吗,制作一个随机出现的满天气球泡泡。大家实现起来看一看。
总结以下我们昨天学到的东西
我们学会了随机的颜色:
随机位置
随机笔刷大小
可以说我们的随机是完全有程序控制的随机数
那么我们就学习了两大类
由我们程序控制的精确图案 和由程序控制的随机图案
新的知识
今天要学习的新的内容就是,既有随机又有控制的情况。
在可控的范围内循环,实现极有规律又不断变化。
第一个知识点:
区别于以前的画法,以前的画法都是将固定大小的图像在360内旋转多次形成的图形。
今天要学习的是递增变成的图像旋转形成的螺旋图像
借助之前学习的循环魔法
for i in range(1,601):
这其中的i就是从1~到600的取值,包括下限不包括上线
我们发现i就是从小到达变化的,这样就能解决所画图形的边长逐渐变化。
第二个重点也是难点:
如何实现笔刷的宽度在一个范围内的循环变化
当然方法有好多,在这里我们学习,一种好理解的取余数法
同学们都知道,for i in range(1,601): 中的i是逐渐变大的
他是一个整数。在这里是正整数。如果我们想要笔刷的宽度从1~4内循环变化,就可以应用 i %4 这个的意思是拿到i 除以4的余数。i从1逐渐变大,%4的余数的规律是。000111122223333000011112222333300001111222233330000
总结规律:
连续正整数% n,就会得到 n组数字循环,n由(0,1,2,3~n-1)组成
我们笔刷宽度设置中是从1~9的,如果我们把i%4 的值+1就会使最后的值在1~4内变化,值就是我们想要的笔刷宽度规律变化。
动手吧:同学们按我的要求来实现程序命令:
1、导入海龟画图模块
2、导入随机模块
3、导入时间模块
4、设置画布名称为螺旋变色
5、背景颜色为深空蓝DeepSkyBlue
6、速度为最快
7、进行600次循环
8、每次循环设置随机颜色(想不起来怎么写了吧,很正常,出门左转查查我们自己的笔记,我也总会忘了)
9、设置我们刚学的。随机笔刷大小pensize(i%4+1)就是在笔刷在1~4内重复循环。如果想要在7到9之中循环就写成pensize(i%3+7)就可以了。大家可以总结以下规律。
10、然后就是前进i的距离
11、然后就是旋转角度,左转右转都一样。我们先随意设定角度。在设定一个60 或90看区别。总结以下形成螺旋的要素。角度的条件是啥才能形成螺旋。
12、时间暂停10秒,便于观察
下面展示一些 内联代码片
。
// 螺旋变色变宽度图形
from turtle import *
import time
from random import randint, random
#tracer(0,0)
bgcolor('white')
speed(0)
for i in range(1,601):
pencolor(random(),random(),random())
pensize(i%4+1)
forward(i)
right(61)
time.sleep(10)
以上是60度的情况
以上是left30度的情况
120度的情况
我们会发现一个问题,只要是旋转正多变的角度他就螺旋不起来,只要不是正多边形的内角和,就是笔刷没有走会到出发点就可以循环。我们是一下较为为91度情况,笔刷走不回到原点。这样就能实现螺旋变色了
这就完成了我们学习的内容。
规律的变色变宽度,变长度产生的图像就会非常漂亮
今天学习的东西不太好理解
要求各位同学,将写到程序上都添加好注释,记住每一步是道理。这就是我们的作业。可以改变一下角度,看看图形有什么变化。