在VBScript中将一个值范围映射到另一个值

时间:2011-08-08 15:46:09

标签: algorithm function vbscript map

我需要将1-320范围内的值转换为它在500-2500范围内的点差内的等效值,我需要在VBScript中进行。

是否有类似于map()的功能可以为我做这个?在这个特定的用例中,我不能包含任何外部库。

1 个答案:

答案 0 :(得分:7)

你的意思是你想要将1到320之间的任何数字转换为500到2500之间的相应数字,使得1对应于500而320对应于2500?

如果是这样,您可以按照以下步骤操作:将x设为原始数字(介于1和320之间),y为目标数字(介于500和2500之间):

y = ((x-1)/319) * 2000 + 500

一般情况下,如果您的范围为a1a2,并希望使用

将其转换为范围b1b2
y = ((x - a1)/(a2 - a1)) * (b2 - b1) + b1