2017-07-09 6 views
-2

質問タイトルにあるように、私は値xとyの間のfloat値の集合を表現するための効率的な方法を探しています。ここで、xは0とyの二重の集合ですその間に値を入力します。どのようにしてxの値が0で、yが1であるかの範囲で、float(xからy)の範囲を0から1の範囲の倍数で表すことができますか?

でのXは今20

5及びYであると仮定する、= 0 5、20 = 1 はC#で10の値を決定するための数学的関数はありますか?

私はxとyの値をどこで交換できるのか、プログラムでこれを行う方法は考えられないと思います。 xとyに与えられた値は1桁です。 0〜1の範囲の値は、小数点以下2桁の精度を持つ必要があります。どんな助けもありがとう、ありがとう!あなたは何を見つけようとしている、論理的な観点から

Static double Map(float x, float y, float inputValue){ Return Convert.ToDouble((inputValue-x)/(y-x));} 

:あなたはマッピングし、それが好き返すようにしたい第三のパラメータは、あなたの値であると、xとyをとり、独自の機能を作成することができ

+0

線形マッピングよりも複雑なことはありますか? – Yunnosch

+2

あなたは '(value-lower)/(upper-lower)'のようなものを意味していますか? – harold

+0

@haroldが示唆しているように線形補間していますか、他の関数を使用していますか? – meowgoesthedog

答えて

1

あなたのInputValueがxとyの間にある方法を分けてください。真ん中の誰かと長い道のりを想像してみてください。彼がどのように分かれているかを知るためには、彼の位置から出発位置を差し引いた距離を見つけて、それを道路の総距離で除算しなければなりません。この距離はこの場合y(終点) -x(開始位置)

+0

ありがとう、あなたは私がコメントに投稿された答えがどのように作用するかを理解するのを助けました。 –

関連する問題