1

こんにちは、特定の範囲の数値を目的の C の iPad アプリケーションの別の範囲にマップしたいと考えています。

たとえば、0 ~ 255 の範囲の入力値を持つことができますが、0.5 ~ 1 の範囲で出力したいとします。たとえば、入力が 127.5 の場合、出力は 0.75 になります。

事前に乾杯。

4

2 に答える 2

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);
于 2012-05-22T06:36:04.790 に答える
5

最初の比率を計算し、それを 2 番目の範囲に適用します。

CGFloat result = ((127.5 / 255) * 0.5) + 0.5;
于 2012-05-22T06:31:52.093 に答える