友情提示:380元/半年,儿童学编程,就上码丁实验室。
大家好,昨天的花,大家会画了吗?
我们今天接着画花。
首先要画的是一朵玫瑰,
画玫瑰的核心思路,是螺旋。
学会螺旋之后,很多特效都可以做出来。
例如
是不是很奇妙,那么我们开始吧。
首先,我们想画玫瑰,看看玫瑰花一般是怎么样的。
由于玫瑰花瓣重叠迂回,所以感觉像螺旋一样。
所以一般我们画玫瑰,不会一片叶子一片叶子的画。
我们就用螺旋的方式来完成。
那么他就仅仅是一个角度的变化。
所以,如果我们仅仅画一个螺旋,非常简单。
即使用以下代码:
即表示,每走10步,左旋1度,再走10步,左转2度,以此类推,这样内角越来越小,形成螺旋内径越来越小。
就可以画出这个效果。
但是,一个玫瑰太单调了,所以我们打算画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度。
所以代码如下:
如此循环,就可以得到10朵玫瑰花。
那么,用螺旋画花就完成了。
假如我们只想画5朵花,那么调整旋转角度即可。
当然,起始角度和也需要做一些改变。
接下来,我们学习,如何做雪花。
雪花,我们都知道,下雪的时候,水的结晶,形成的不同图案。
灰常漂亮。
他由六根分支组成。
然后每根分支,又形成分叉,有点像松叶。
我们该如何做一个冬天的雪花呢?
由于他结构的复杂,我们在编程时需要用到链表。用于存储各个结构的变量。
为了让雪花的大小形状变得随机,我们会使用随机数来填充链表。
在雪花的结构上面,晶体会融合,要达到这个效果,我们使用了两个造型。
这样一来,雪花飘飘的效果就可以显示出来。
首先,我们定义链表。
这个函数模块的定义,其功能在于:
- snow-1链表的内容随机填充。0~18是雪花花瓣随机的长度。
- 第一个如果的意思在于,我们希望雪花花瓣填充大小是随机的。
- 如果填充是0,则保持造型不变,否则,会随机产生一个造型比例的放大或缩小。
这意味着,每次程序执行,出现雪花的样式是不一样的。
接着,我们就开始循环显示雪花了。
这里,我们只举一个例子。
执行6次,即6个雪花花瓣。
每个花瓣的样式:
取造型1:
然后开始画花瓣,设置大小50%,根据前面初始化的链表值,如果数值是0,就图章一个造型,并且向前走大小为造型占用的距离。
然后在切换造型。如果链表值不为0,则根据表值计算角色大小,然后图章。
如此循环,就变成了动态的雪花在旋转,并且样式不断变化的效果了。
下图所示:
好了,今天的课就到这里。
我们明天再见,明天我们将学习一个不断放大循环的形状。
嗯,就是下图这个了。
如果想获得详细代码,可以注册卡搭,到下面网址就可以看程序效果并阅读代码了。
http://kada.163.com/project/275197-129466.htm
始发于微信公众号:
顽斗坊