最新消息:

Scratch编程之图形特效(3)一花一世界,编程的世界很大很奇迹(下)

Scratch 少儿编程 4192浏览 0评论
Scratch图形特效

友情提示:视频教程观看时请手动设置清晰度。

大家好,昨天的花,大家会画了吗?

我们今天接着画花。

 

首先要画的是一朵玫瑰,

画玫瑰的核心思路,是螺旋。

学会螺旋之后,很多特效都可以做出来。

 

例如

Scratch编程之图形特效(3)一花一世界,编程的世界很大很奇迹(下)

Scratch编程之图形特效(3)一花一世界,编程的世界很大很奇迹(下)

Scratch编程之图形特效(3)一花一世界,编程的世界很大很奇迹(下)

是不是很奇妙,那么我们开始吧。

 

首先,我们想画玫瑰,看看玫瑰花一般是怎么样的。

Scratch编程之图形特效(3)一花一世界,编程的世界很大很奇迹(下)

由于玫瑰花瓣重叠迂回,所以感觉像螺旋一样。

 

所以一般我们画玫瑰,不会一片叶子一片叶子的画。

我们就用螺旋的方式来完成。

 

那么他就仅仅是一个角度的变化。

 

所以,如果我们仅仅画一个螺旋,非常简单。

即使用以下代码:

 

Scratch编程之图形特效(3)一花一世界,编程的世界很大很奇迹(下)

即表示,每走10步,左旋1度,再走10步,左转2度,以此类推,这样内角越来越小,形成螺旋内径越来越小。

就可以画出这个效果。

 

Scratch编程之图形特效(3)一花一世界,编程的世界很大很奇迹(下)

 

但是,一个玫瑰太单调了,所以我们打算画10个玫瑰。

那么程序如果想继续画,最关键的点是一个玫瑰完成后,到第二个玫瑰所对应的角度。

 

我们期望10个玫瑰正好形成一个循环。

那么可以计算一下,每两个相邻玫瑰之间的角度是360/10=36度。

又由于玫瑰的延伸最好形成内角对称。

所以我们第一个玫瑰画完之后,应该延伸到第四个玫瑰。

即1-4-7-10;这是第一轮

10-3-6-9;这是第二轮

9-2-5-8;这是第三轮。

第8个玫瑰画完之后,即回到第一个玫瑰的起始点。

 

于是我们可以计算1和4的玫瑰之间的角度是36*3=108度。

所以,我们做螺旋的时候,每一步应该多转一点角度。

我们取一根变量为x。

那么公式就是 n(1+n)/2%360取余数=108

带入值为n=360+x

(360+x)(361+x)/2

 

经过计算得知,x=0.2

 

即每次旋转需要增加n+0.2度。就可以做到360次之后,形成的角度于起始角度呈现108度。

 

所以代码如下:

 

Scratch编程之图形特效(3)一花一世界,编程的世界很大很奇迹(下)

如此循环,就可以得到10朵玫瑰花。

Scratch编程之图形特效(3)一花一世界,编程的世界很大很奇迹(下)

那么,用螺旋画花就完成了。

 

假如我们只想画5朵花,那么调整旋转角度即可。

当然,起始角度和也需要做一些改变。

Scratch编程之图形特效(3)一花一世界,编程的世界很大很奇迹(下)

接下来,我们学习,如何做雪花。

雪花,我们都知道,下雪的时候,水的结晶,形成的不同图案。

灰常漂亮。

Scratch编程之图形特效(3)一花一世界,编程的世界很大很奇迹(下)

他由六根分支组成。

然后每根分支,又形成分叉,有点像松叶。

 

我们该如何做一个冬天的雪花呢?

 

由于他结构的复杂,我们在编程时需要用到链表。用于存储各个结构的变量。

 

为了让雪花的大小形状变得随机,我们会使用随机数来填充链表。

在雪花的结构上面,晶体会融合,要达到这个效果,我们使用了两个造型。

这样一来,雪花飘飘的效果就可以显示出来。

 

首先,我们定义链表。

 

Scratch编程之图形特效(3)一花一世界,编程的世界很大很奇迹(下)

 

这个函数模块的定义,其功能在于:

  1. snow-1链表的内容随机填充。0~18是雪花花瓣随机的长度。
  2. 第一个如果的意思在于,我们希望雪花花瓣填充大小是随机的。
  3. 如果填充是0,则保持造型不变,否则,会随机产生一个造型比例的放大或缩小。

 

这意味着,每次程序执行,出现雪花的样式是不一样的。

 

接着,我们就开始循环显示雪花了。

 

这里,我们只举一个例子。

 

 

Scratch编程之图形特效(3)一花一世界,编程的世界很大很奇迹(下)

执行6次,即6个雪花花瓣。

每个花瓣的样式:

取造型1:

Scratch编程之图形特效(3)一花一世界,编程的世界很大很奇迹(下)

然后开始画花瓣,设置大小50%,根据前面初始化的链表值,如果数值是0,就图章一个造型,并且向前走大小为造型占用的距离。

 

然后在切换造型。如果链表值不为0,则根据表值计算角色大小,然后图章。

 

如此循环,就变成了动态的雪花在旋转,并且样式不断变化的效果了。

 

下图所示:

Scratch编程之图形特效(3)一花一世界,编程的世界很大很奇迹(下)

 

好了,今天的课就到这里。

我们明天再见,明天我们将学习一个不断放大循环的形状。

嗯,就是下图这个了。

 

Scratch编程之图形特效(3)一花一世界,编程的世界很大很奇迹(下)

 

如果想获得详细代码,可以注册卡搭,到下面网址就可以看程序效果并阅读代码了。

http://kada.163.com/project/275197-129466.htm

 

始发于微信公众号:
顽斗坊

您必须 登录 才能发表评论!