map(-30, -89.75, 89.75, 0, 360)
私はこのようなものを探しています:
- -30は入力値です。
- -89.75〜89.75は、可能な入力値の範囲です。
- 0-360は、マップされる最後の範囲です
http://ruby-doc.org/core-1.9.3/Enumerable.html#method-i-mapを使用してこれを行う方法があると言われました
..しかし、それはすぐにはわかりません!
map(-30, -89.75, 89.75, 0, 360)
私はこのようなものを探しています:
http://ruby-doc.org/core-1.9.3/Enumerable.html#method-i-mapを使用してこれを行う方法があると言われました
..しかし、それはすぐにはわかりません!
私の理解が正しければ、ある範囲を別の範囲に均一にマッピングしたいだけだと思います。そのため、入力範囲内の距離を計算し、出力範囲のその分数を返すだけで済みます。
def map_range(input, in_low, in_high, out_low, out_high)
# map onto [0,1] using input range
frac = (input - in_low) / (in_high-in_low)
# map onto output range
frac * (out_high-out_low) + out_low
end
また、Ruby では map の意味が少し異なることに注意してください。より適切な説明はおそらくtransformでしょう。