Java中的Arduino映射等价函数

Java中的Arduino映射等价函数,java,map,range,arduino,Java,Map,Range,Arduino,有没有类似于Arduino for Java中的函数 我需要将一个范围的值映射到另一个范围的值,所以我想知道Java中是否有类似的东西,我一直在搜索,但我只得到Java的映射函数。嗯,Java没有“映射”函数,它在集合中有一个类型(Java.util),有多个实现。但这只是一种存储机制,基本上产生键=>值对。根据我对您链接的Arduino文档的阅读,您需要实现自己的方法来适当地映射值 来自Arduino图书馆的map()代码如下: long map(long x, long in_min, lo

有没有类似于Arduino for Java中的函数


我需要将一个范围的值映射到另一个范围的值,所以我想知道Java中是否有类似的东西,我一直在搜索,但我只得到Java的映射函数。

嗯,Java没有“映射”函数,它在集合中有一个类型(Java.util),有多个实现。但这只是一种存储机制,基本上产生键=>值对。根据我对您链接的Arduino文档的阅读,您需要实现自己的方法来适当地映射值

来自Arduino图书馆的
map()
代码如下:

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;
}

这在Java中也同样有效——没有真正的魔力。但是标准Java没有这样的预定义版本。

我太快了,在底部的Arduino文档页面显示了执行此操作的代码:删除了我的答案,因为它正是您所说的。当我查找代码时。谁希望在冗长的文档中实现呢?:-)请注意对map()函数的批评:在将其移植到Java时。请注意罕见的情况,即
in_max
in_min
out_min
为零,因为被零除会引发
算术异常,它是关于根据确定的最小/最大值映射相对值。