我有一个简单的问题。
我有两个值MIN和MAX。然后我有一系列值(X),可以介于0和+无穷大之间。
现在我想要一个算法将X的每个值x映射到MIN和MAX之间的范围。
答案 0 :(得分:6)
这是一个只使用基本算术(没有atan
或exp
)的人:
MAX +(MIN - MAX)/(1 + x )
如果您需要改变此保形贴图的形状,请尝试
MAX +(MIN - MAX)/(1 + f( x ))
对于任何正函数f(例如f( x )= kx 或f( x )=√ x < / em>或......)。
答案 1 :(得分:4)
MIN + atan(x)*(MAX-MIN)/(PI / 2)
答案 2 :(得分:3)
假设你想要一个单调递增的函数:
MAX + (MIN - MAX)*exp(-k*x)
其中k
是一个速率因子,用于确定映射接近MAX的速度。