我想知道如何基本连接两个数字。例如:如果我有一个从0到10的数字,那么我想将其“映射”到另一个从0到100的值,这意味着如果原始数字将其值更改为1,那么我的数字将以相同的百分比。像这样:原始数字= 1,那么我的数字应该是10,如果我是2,然后是20,依此类推。
是否有为此功能,或者我必须手动对其进行编码?
具体示例:
day_night_value = 5 # 0 = midnight; 10= noon
threshold = ?? # This should equal to 249 if it is noon, and 134 if it is midnight
有帮助吗?
预先感谢
答案 0 :(得分:1)
这通常称为"map range" equation。
上面的Rosetta Stone链接给出了以下definition for Python:
def maprange( a, b, s):
(a1, a2), (b1, b2) = a, b
return b1 + ((s - a1) * (b2 - b1) / (a2 - a1))
以其用法为例:
for s in range(11):
print("%2g maps to %g" % (s, maprange( (0, 10), (-1, 0), s)))
您当然可以更改定义,以使您不必为范围传递元组。
这也是通常需要的功能,许多图形库都包含它的定义。