1 python
Arduino 有一个map()函数可以将整数值从一个范围缩放到另一个范围。例如,您可以从范围为 0\xe2\x80\x931024 的 8 位 ADC 传感器获取输入,并将其按比例缩放到范围 0-100。
我将如何在 Python 中做到这一点?
\n就像评论中提到的buran一样,Arduino 参考页面map()显示了完整的实现,几乎可以逐字复制到 Python 中。
这是 Arduino C++ 代码:
long map(long x, long in_min, long in_max, long out_min, long out_max) {
return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min;
}
Run Code Online (Sandbox Code Playgroud)
这就是它在 Python 中的样子。唯一真正的问题是,/在 Python 中,即使两个操作数都是整数,也会返回浮点数;//具体来说就是整数除法。
def map_range(x, in_min, in_max, out_min, out_max):
return (x - in_min) * (out_max - out_min) // (in_max - in_min) + out_min
Run Code Online (Sandbox Code Playgroud)
(我还重命名了它,这样它就不会影响 Python 自己的map,这是完全不同的。)
| 归档时间: |
|
| 查看次数: |
4999 次 |
| 最近记录: |