可能重复:
Math - mapping numbers
我的值“x”可以是0到127,值“y”可以是-1000到0。 如果x = 0而不是y = -1000并且如果x = 127而不是y = 0,我需要这样做...我怎么能做到?
答案 0 :(得分:3)
听起来你只想要一个线性方程(y = mx + b)。在你的情况下,这将是
y = x*(1000/127) - 1000
答案 1 :(得分:1)
y =(x-127)*(1000/127)
答案 2 :(得分:1)
y = x * (1000.0/127.0) - 1000.0
确保在计算中使用浮动值,否则会得到不准确的答案。
编辑:如果你对准确性非常挑剔,那么这样做会更好:
y = (int) (0.5 + (x * (1000.0/127.0) - 1000.0))
(将进行正确的舍入)。
答案 3 :(得分:0)
线性插值...
斜率=(0 - -1000)/(127 - 0)=(1000.0 / 127.0) y-intercept = 127
y =(1000.0 / 127.0)* x - 1000
当然这假设x和y可以采用“真实”值,而不仅仅是整数。