绘制正弦波形 ( sin )
这篇文章会介绍在 Scratch 里使用扩充功能的画笔,搭配数学三角函数、函数、逻辑判断、重复无限次...等积木,实际绘制一个正弦波形 ( sin 波 )。
正弦波形原理
“正弦波形”是什么呢?是一种来自三角函数中的正弦比例的曲线波形,当 x 不断改变时,透过震幅、角度和正弦函数计算 y 座标,模拟周期性的波形图案。
正弦波形 y 座标公式:y = y0 + n × sin(deg)
( y0:y 轴位置、n:震幅大小、deg:角度 )
更多详细正弦波形公式,可以参考:The General Sinusoidal Function
积木程序原理
打开 Scratch 扩充功能,加入“画笔”积木。
首先绘制一条最基本的正弦波形,也就是角度从 0~360 的一个完整正弦波:
- 放入点击绿旗积木,点击绿旗时先将猫咪定位到 (-180, 0)。
- 新增变数 deg,默认为 0。
- 放入“笔迹全部清除”积木,清空舞台画面上的笔迹。
- 使用“重复 360 次”积木,搭配 deg 变数改变 1,刚好是一个完整的正弦波周期。
- 每次重复让 deg 改变 1,角色的 x 座标改变 1 ( 水平往右移动 )。
- 每次重复让 y 座标设定为“y0 + n × sin(deg)”,默认 y0 为 0,n 为 50。
完成后,点击绿旗,就会看到猫咪一边移动,一边画出正弦波形。
为了让程序更有弹性 ( 例如要连续画出好几条正弦波 ),可以将程序改成函数的方式运作,新增一个名为“正弦波”的函数,加入一个“deg”参数,并勾选“执行完毕再更新画面”。
将原本的程序,搬移到正弦波函数里,并加入“停笔”积木,避免出现不必要的线段,完成后在点击绿旗的积木里,呼叫正弦波函数。
完成后,点击绿旗,舞台上就会出现一个正弦波的形状 ( 因为勾选了“执行完毕再更新画面”,所以会在极短的时间内绘制完成 )。
最后修改点击绿旗的程序:
- 在点击绿旗时,隐藏猫咪角色。
- 新增变数 a,默认 0。
- 放入重复 30 次积木,每次重复把 a 增加 1。
- 每次重复呼叫正弦波函数,将 a 的数值作为 deg 参数使用。
完成效果
完成后,点击绿旗,舞台上就会出现 30 个正弦波的图案。
范例解答
范例解答:绘制正弦波形 ( sin 波 )
延伸练习
如果已经熟悉了绘制正弦波形 ( sin 波 )的原理,还可以尝试更多好玩的作法:
新增正弦波函数的参数,让函数可以调整震幅、颜色或笔画粗细 ( 解答 )
微信扫码关注
抖音扫码关注