学编程玩科学-火是怎么形成的

我们都知道火是物质燃烧时伴随的现象,但你是否还想对火探个究竟,为什么气体燃烧的火焰是蓝色而木头是橘红色?为什么火焰总是晃动飘渺?

化学能解释燃烧的实质,但放光放热却是物理现象。当物质充分燃烧时,比如煤气、火把或蜡烛火焰的底部,热量激发电子跃迁放出淡蓝色的光,也就是量子力学。当燃料不纯或是未能充分燃烧时,比如木头、煤炭或是蜡烛火焰的顶端仍然会有部分蓝火。但你看不到,因为烟把它遮住了。你只能看到红色火焰。

那为什么热的物体会发光?辐射告诉我们所有的物体在不同的温度下,会辐射不同频率的光。但你看不到你的小伙伴发光,是因为人体温度太低不能辐射可见光 ,我们辐射红外线。但岩浆、热铁块和煤烟,都有足够的温度放出橘红色的光。

火焰飘忽的原因是地球向下扯的重力。重力使得热空气上升,空气的对流造成了火焰的形状。如果你在零重力的环境中划亮一根火柴,火焰会是球形。没有重力的影响 火焰会向各个方向延伸。

了解了火焰形成的背景。我们就来用Scratch做一把火吧!
我们先来看一下游戏的整体效果:

设置游戏角色

首先,我们新建一个Scratch项目,设置一个存黑色的背景。我们选择一个蜡烛作为燃烧物质。

制作火焰粒子

从前面的内容我们知道,火焰是由于燃烧物散发粒子形成的。因此,我们新增一个红色的粒子角色。然后,我们使用clone积木复制出很多个粒子。

在没有重力的影响下,粒子应该散播成一个圆形,因此,我们改变粒子的位置,让它位于一个圆形里。这里注意,我们使用了一个数学公式:

圆点坐标:(x0,y0) 半径:r 角度:a0 则圆上任一点为:(x1,y1) x1   =   x0   +   r   *   cos(ao   *   3.14   /180   ) y1   =   y0   +   r   *   sin(ao   *   3.14   /180   )

火焰受重力影响飞起来

我们新增一个重力变量,值在0~9.8之间。粒子在初始化好后会根据重力的不同飞起来,从而形成火焰的效果。

完整的项目可以参照:
https://kada.163.com/project/1304620-1382044.htm

蓝色火焰

火焰的颜色是燃烧物质的燃烧层度决定的。因此,我们再定义一个燃烧度变量,值在0~100之间。粒子的颜色会根据燃烧度变化。
我们的火焰就完成啦,火焰会根据重力和燃烧度发生变化,是不是很酷?科学很有趣,小朋友们想知道其他科学现象也可以跟阿达老师说哦!
阿达老师-孩子身边的编程专家
完整课程请关注阿达老师,主页里有完整的课程目录和观看地址


你可能感兴趣的:(学编程玩科学-火是怎么形成的)