当前位置:首页 > 技术 > 算法 > 正文内容

将一个数从一个范围映射到另外一个范围

watrt5年前 (2019-03-24)算法14230
float map(float val, float I_Min, float I_Max, float O_Min, float O_Max){
return(val/(I_Max-I_Min)*(O_Max-O_Min) + O_Min);
}


将一个数从一个范围映射到另外一个范围。也就是说,会将 fromLow 到 fromHigh 之间的值映射到 toLow 在 toHigh 之间的值。

不限制值的范围,因为范围外的值有时是刻意的和有用的。如果需要限制的范围, constrain() 函数可以用于此函数之前或之后。

注意,两个范围中的“下限”可以比“上限”更大或者更小,因此 map() 函数可以用来翻转数值的范围,例如:

y = map(x, 1, 50, 50, 1);


这个函数同样可以处理负数,请看下面这个例子:

y = map(x, 1, 50, 50, -100);


分享给朋友:

相关文章

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。