0
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を使用してこれを行う方法があると言われました

..しかし、それはすぐにはわかりません!

4

1 に答える 1

1

私の理解が正しければ、ある範囲を別の範囲に均一にマッピングしたいだけだと思います。そのため、入力範囲内の距離を計算し、出力範囲のその分数を返すだけで済みます。

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でしょう。

于 2012-12-07T04:08:43.123 に答える