Answers:
基本公式为:
Result := ((Input - InputLow) / (InputHigh - InputLow))
* (OutputHigh - OutputLow) + OutputLow;
您的情况:
结果:=((输入 - -1)/(1 - -1)*(255 - 0)+ 0 ;
如果系数是静态的,则可以从此处优化转换,但是编译器也可能会自己完成转换。
结果:=((输入 - -1)/ 2)* 255 + 0 ;
结果:= 输入 * 127.5 + 127.5 ;
可以说x
是原始输入,y
是预期输出。我们至少有两个点
(x,y)(-1,0)(1,255)
由于我们要进行线性插值,因此我们可以查看形式方程
y = m*x + c
有了以上两点,我们可以解决m
和c
一旦做到这一点,你得到的变换方程。
请注意,此方法也适用于其他类型的方程式。例如,如果要指数或二次插值。
v = (1-a)*x + (a)*y
。我看不出这个答案与所问的问题有多大关系,因为他想要的只是一个范围映射。