C 或 Obj-c 函数将范围标准化为 x-y

C or Obj-c function to normalize range to x-y

我的输出范围是 150-0。我想将它们映射到 0 到 1。或者可能是 0 到(某些值小于 1,例如 0.5),其中 150 是 0,0 是 1(或某些值小于..)。

这算是插值吗?得出这些值的公式是什么?但最好有我可以调用的内置 StdLib 函数吗?

将您的数字除以(最大值 - 最小值)。这将使 150 成为 1,而 0 将成为 0,其他一切都是介于两者之间的数字。现在,要使其相反,只需执行 1 - 结果。

如果您需要将 0-1 映射到任何自定义范围,您需要将范围乘以 MAX-MIN,然后加上 MIN 以获得范围内的确切数字。

公式将是 MIN + (MAX-MIN)*value

其中value是0-1之间的范围; MIN 是映射到 0 的数字; MAX 是映射到 1 的数字;