7

たとえば、私は2つの範囲を持っています

                       (1) 0 to 3
                       (2) 10 to 15

範囲 (1) には、0 から 3 までの数値があります。ここで、0 は最小値、3 は最大値です...(1 と 2 の値もあります)...

今、範囲 (1) と (2) の両方を 0 から 1 の範囲に再スケーリングしたかったのですが、その方法を教えてもらえますか、少なくとも役立つサイトを教えてもらえますか? どうもありがとう!

4

1 に答える 1

33

あなたが説明しているものは、線形補間と呼ばれます。

一般的なケースとして、 と のc間に値がaあり、 との間の の相対位置に基づく 0 と 1 の間bの値が必要だとします。の式は次のとおりです。xcabx

x := (c - a) / (b - a)

したがって、10 から 15 の間の値 (11 としましょう) があり、0 から 1 の間の値が必要な場合は、上記の式に値を打ち込みます。

x := (11 - 10) / (15 - 10)
x := 1/5

つまり、11 は 10 から 15 までの 5 分の 1 です。


さらに一般的なケース ( と の間の値があり、 と の間の値が必要な場合)は、c次のように計算されます。abxyzx

x := (c - a) * (z - y) / (b - a) + y

あなたの場合、z = 1そしてy = 0

于 2009-09-21T18:21:48.050 に答える