こんにちは、特定の範囲の数値を目的の C の iPad アプリケーションの別の範囲にマップしたいと考えています。
たとえば、0 ~ 255 の範囲の入力値を持つことができますが、0.5 ~ 1 の範囲で出力したいとします。たとえば、入力が 127.5 の場合、出力は 0.75 になります。
事前に乾杯。
こんにちは、特定の範囲の数値を目的の C の iPad アプリケーションの別の範囲にマップしたいと考えています。
たとえば、0 ~ 255 の範囲の入力値を持つことができますが、0.5 ~ 1 の範囲で出力したいとします。たとえば、入力が 127.5 の場合、出力は 0.75 になります。
事前に乾杯。
一般的な解決策は次のとおりです (範囲と入力値の任意の組み合わせで機能するはずです)。
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);
最初の比率を計算し、それを 2 番目の範囲に適用します。
CGFloat result = ((127.5 / 255) * 0.5) + 0.5;