我有一个浮点数,表示百分比(0.0到100.0)%
float represent = 50.00; // fifty present, or half.
作为示例:将此数字转换为-2到2的范围 从而: 代表= 0将表示为-2 代表= 50将表示为0 代表= 100将表示为2
编辑: 来自Orbling和朋友们的简单回答,我仍在寻找以下内容:地图(价值,从低,从高,到低,到高) 目标C中是否有一个函数可以将这样的范围映射到更复杂的值?
答案 0 :(得分:4)
represent = (represent / 25.0f) - 2.0f;
答案 1 :(得分:1)
这应该可以解决问题:
define map(v, r1, r2, t1, t2)
{
norm = (v-r1)/(r2-r1);
return (t1*(1-norm) + t2*norm);
}
说明:
使用示例:
map (0, 0, 100, -2, 2) // 0 mapped to -2..2 in the range 0..100
-2.0
map (50, 0, 100, -2, 2) // 50 mapped to -2..2 in the range 0..100
0
map (100, 0, 100, -2, 2) // 100 mapped to -2..2 in the range 0..100
2.0
map (-90, -100, 20, -4, 2) // -90 mapped to -4..2 in the range -100..20
-3.5