2016-09-25 16 views
-1

私は、数学的に正しいマッピング方程式を書く方法が何であるか疑問に思っています。私は値(v_min、v_max)の別の範囲にマップするスライダ範囲(0,100)を持っています。書くのではなく、任意の標準的な方法がある:( - V_MIN V_MAX)/(100から0)パラメータマッピングの方程式の書き方

V = slider_value *

質問はマッピングを記述するための標準的な数学的な方法があるかどうかについてですが(、 b)〜(c、d)。それは、それ自体をコード化するのではなく、紙の文書化のためです。あなたは正しい結果を得るためにv_minを追加する必要が

おかげ

+0

そのないコーディングの問題、あなたは間違って上にある場合サイト。多分、math.stackexchange.comを試してみてください。おそらくあなたのフィールドのいくつかのジャーナルを見直すほうが生産性が高いでしょう。 – agentp

+0

私はプログラミングとコーディングに関するものではないので、この質問をトピックとしてクローズすることにしました。 – Pang

答えて

1

と線形写像のためのより一般的な式は

v = v_min + (slider_value - slider_min) * (v_max - v_min)/(slider_max - slider_min) 

Cf = (v_max - v_min)/(slider_max - slider_min)が非常に小さいので、最適化は、すべての段階で過度な計算を回避することができる、与えられたマッピングのために一定の知られているということです。注:

v = v_min + (slider_value - slider_min) * Cf 
+0

こんにちは、それは私が求めているマッピング方法ではありません、それは明確でない場合は申し訳ありません。それは文書化に関するものです。方程式を紙に書くには? (a、b)から(c、d)へのマッピング方法を文書化するための標準的な方法があるかどうか。 –

0

あなたは使用可能Interpolation

Interpolation[{{slidermin,vmin},{slidermax,vmax}}]@sliderval 

(警告を無効にするにはInterpolationOrder->1が必要な場合があります)

これは根本的に他の回答の式を作成するだけですが、範囲外になると警告が表示されます。

+0

こんにちは、それは私が求めているマッピング方法ではありません、それは明確でない場合は申し訳ありません。それは文書化に関するものです。方程式を紙に書くには? (a、b)から(c、d)へのマッピング方法を文書化するための標準的な方法があるかどうか。 –

+1

なぜmathematicaタグですか? – agentp

1

私はそれはあなたが求めるまさにんので、あなたが探している機能がRescaleだと思う:

v = Rescale[slider_value, {0, 100}, {v_min, v_max}] 

例:

DynamicModule[{x = 0}, 
    Column[{ 
     Dynamic[x], 
     Dynamic[Rescale[x, {0, 100}, {-200, 300}]], 
     Slider[Dynamic[x], {0, 100}] 
    }] 
]