编程与数学:两个数值范围之间的映射

编程与数学:两个数值范围之间的映射

在“简单说说集合”一文里,我们说了集合的两种运算:∪(并)和∩(交)。现在来说说集合的另一种运算“映射”。这东西,我在编Mixly程序时学过,有感性认识。模拟输入口输入的数值范围是0~1023,而送模拟输出也就是PWM(脉宽调制)口的数值范围是0~255,如果把某个模拟口的输入直接送PWM口,代码里就需要做映射。

所谓映射,就是把两个集合里的所有元素,一一建立对应关系。我们还是以Arduino为例。见上图。

集合X的数值范围是0~1023,集合Y的数值范围是0~255。集合X的最小值Xmin对应于集合Ymin的最小值,集合X的最大值Xmax对应于集合Y的最大值Ymax。那中间的其它值呢?按图中给出的公式计算。这个公式定义了完整的映射,包括最小值不为0,且两个最小值不相同的映射。

在Arduino做映射是很简单的,不需要用公式计算,可以直接引用Arduino C的内置库函数map()。函数格式为map(value, fromLow, fromHigh, toLow, toHigh),其中的5个参数分别是:value,就是上面公式中的x;fromLow,就是Xmin;fromHigh,就是 Xmax;toLow,就是Ymin;toHigh,就是Ymax。这个函数的返回值就是公式里的y。

据说六年级就要学映射了。学编程,学做创客,对主课学习也是很有用的。

展开阅读全文

页面更新:2024-04-27

标签:数值   两个   主课   感性认识   最大值   公式   函数   元素   也就是   定义   完整   参数   东西   数学   关系   代码

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top