Objective c将一个数字范围映射到另一个

时间:2012-05-22 06:25:56

标签: iphone objective-c ios5

您好我想在iPad应用程序的目标C中将特定范围的数字映射到不同的范围。

例如,我可能有一个0-255范围内的输入值,但我想输出的范围是0.5-1。例如,输入127.5将导致输出0.75。

提前干杯。

2 个答案:

答案 0 :(得分:8)

这是一般解决方案(它适用于范围和输入值的任何组合):

CGFloat const inMin = 0.0;
CGFloat const inMax = 255.0;

CGFloat const outMin = 0.5;
CGFloat const outMax = 1.0;

CGFloat in = 127.5;
CGFloat out = outMin + (outMax - outMin) * (in - inMin) / (inMax - inMin);

答案 1 :(得分:5)

计算第一个的比率并将其应用于第二个的范围:

CGFloat result = ((127.5 / 255) * 0.5) + 0.5;