我正在使用一种硬件,正在使用一种专有的编程语言来与VIA串行控件进行通信,该编程语言看起来像是非常笨拙的C版本。
设备在查询时报告其当前音量。范围是-60到+20。如何将其缩放到0-255的范围(以3为增量递增)?
您还可以提供另一个值和其他小数位数的示例吗,即-15到15的小数位数,缩放为0-165,等等。
最佳答案
这实际上是简单的数学
首先,让我们消除对负数的需要:
对于范围-60 <-> + 20:x + 60
现在我们有一个0 <-> 80范围,只需将其缩放到255即可:(x/80)* 255
将所有内容放到公式中,这就是您应该得到的:
y =((x + 60)/80)* 255
所以基本上:
y =((x + negativeValue)/MaxValue)* MaxScale
希望你现在明白了!
关于math - 如何缩放数字/值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12959371/