Scratch画彩虹
2020-09-08
如何用Scratch绘制出彩虹呢?我们都知道彩虹有七种颜色,肯定要用画笔工具,但彩虹是由多条不同半径的同心圆组成,如何保证不同色带之间贴紧在一起呢?我将用两种方法来绘制彩虹,希望能给你启发,找到其他更好的方法。
一、移动加旋转法
这种方法应该是最容易想到的方法,设置好画笔的粗细及颜色后,确定好起始位置,用每前进n步就旋转固定角度的方法先画出最外圈红色半圆,然后逐步调整内圈的起始位置和移动步长,保证内层紧贴外圈,找到合适的数值变化规律后使用循环嵌套重复绘制(图1)。
设置两个变量:X代表起点横坐标,n代表移动的步数。并且设置好画笔颜色(红色)和画笔粗细(我们这里定为15)。
由于彩虹有七种颜色,外层循环需要重复执行七次,每次画出一层彩虹,在这层循环里,要确定起点(X,-100)和方向面向0度,落笔,嵌套的内循环需要完成画半圆的任务,重复执行60次,每次移动n步,右转3度(3×60=180°)刚好是半圆,内循环结束时记得抬笔。
将画笔的颜色增加13,这个数值是试出来的,作为内圈彩虹的颜色。
将X的坐标增加15,这是画笔的粗细,这样保证两个颜色的色带刚好贴合。n的步数减少0.8,这个数值也是通过测试得到的。
直到外循环结束之后,七色彩虹也就完成了。
二、画圈删减法
你看彩虹是个半圆形。我们第二种办法是画圆裁剪法,先画七个不同半径(用画笔粗细控制)的同心圆,然后擦除下边一半圆和最内圈圆就成了彩虹了。
这种方法只设一个变量n,用于确定画笔的粗细。先将n设置为260(也是外圈的半径大小),画笔颜色设置为红色。这次只需一层循环,重复7次,执行一次落笔,抬笔,画出一个直径260的红点。然后依次减小n,每次n减25,颜色增加14。当循环结束之后我们可以看到类似标靶的一个图形(图2)。
接下来我们要把多余的部分用白色覆盖掉。把画笔的颜色调整成白色,画笔大小为85,抬笔,落笔,将中心多余的部分给填充成白色。将笔粗细设为260和外圆半径一样,移动到左下角(-130,-130)位置從左往右画一条很粗的白线(图3)。
彩虹的画法还有递归法……你可以查阅相关的资料实现出不同的彩虹画法。