rzyzzxw 发表于 2022-6-26 16:52:21

模拟掌控 19--正弦波和余弦波

本帖最后由 rzyzzxw 于 2022-6-26 17:07 编辑

模拟掌控 19--正弦波和余弦波
这个系列,献给没有掌控板的小朋友,同时也可以疫情线上课教学使用。小创客课程,欢迎选用《小创客轻松玩转掌控板》,用掌控板上课,比模拟运行效果要好多了。


目标:1、数学与编程结合,实现用掌控板绘制正弦曲线和余弦曲线。2、变量的应用(本教程需要用到高中数学三角函数知识,不适用初中小学)
step1复习三角函数知识。


下面视频讲解来自乐乐课堂。

我们最终要实现的正弦波效果如下图。

掌控板屏幕128*64像素。正弦函数y=sinx 最小正周期为2pai(360度),函数值域为[-1,1],所以我们要用映射来让自变量a与0-127相对应,因变量y与-1--1相对应。
step2
https://qiniu.makeymonkey.com/1656144222655image.png?imageView2/2/w/800/auto-orient/format/jpg

1、先画x轴,因屏幕有限,y轴省略。
https://qiniu.makeymonkey.com/1656144373714image.png?imageView2/2/w/800/auto-orient/format/jpg

2、设置变量i代表正弦波的x坐标值,变量Dy代表正弦波的弧度。因为OLED显示屏长128像素,使用有限循环语句来推进正弦波上每一点坐标的绘制,改变变量“i”的数值,从0到127,每隔1,共执行128次。
https://qiniu.makeymonkey.com/1656232578389image.png?imageView2/2/w/800/auto-orient/format/jpg

3、因为每一点横坐标i对应正弦波的弧度,利用映射值,将i的范围(0,127)映射成正弦波的弧度(0,360)并把每一点坐标的弧度赋值给变量Dy,Dy值取整。
https://qiniu.makeymonkey.com/1656232775411image.png?imageView2/2/w/800/auto-orient/format/jpg

小贴士因为是以半径为32的单位圆绘制的正弦波,所以根据三角函数公式MP=R*sin(Dy)。所以y坐标:32-MP,即:32-32*sin(Dy)。https://qiniu.makeymonkey.com/1656144696676image.png?imageView2/2/w/800/auto-orient/format/jpg


https://qiniu.makeymonkey.com/1656232822778image.png?imageView2/2/w/800/auto-orient/format/jpg

合起来就是:
https://qiniu.makeymonkey.com/1656232912285image.png?imageView2/2/w/800/auto-orient/format/jpg

step3拓展:用类似的方法做出余弦曲线。
https://qiniu.makeymonkey.com/1656233069407image.png?imageView2/2/w/800/auto-orient/format/jpg

参考:
https://qiniu.makeymonkey.com/1656233118242image.png?imageView2/2/w/800/auto-orient/format/jpg

step3优化程序,按A键绘制正弦波,按B键绘制余弦波。
https://qiniu.makeymonkey.com/1656233279424image.png?imageView2/2/w/800/auto-orient/format/jpg

https://qiniu.makeymonkey.com/1656233301894image.png?imageView2/2/w/800/auto-orient/format/jpg

本课结束。
页: [1]
查看完整版本: 模拟掌控 19--正弦波和余弦波