2017-02-14 28 views
0

変数の最小値と最大値を変更できるUISliderがあります。 ここで、値を0から1.0の範囲で計算する必要があります。例えば :
最小=結果値-50.0 = 0.0、の値であるべきである-20.0UISliderの値を範囲から範囲に計算する方法0-1.0

-50.0
最大= -20.0 = -35.0の値はpropably約0.5

1.0 また、怒り0-1.0から上記の範囲に計算する必要があるので、0.5は-35.0を返す必要があります。

私はこの質問がなぜオフトピックであるのかわかりません。数学的事柄を原理的に説明するためにサンプルコードは必要ありません。とにかく、混乱することなく答えられた。

+1

質問がオフトピックである理由基本的には自分で言いました: " *数学的な事柄を説明するためにサンプルコードは必要ありません* "明らかに、あなたの質問はプログラミングに関するものではなく、基本的な数学に関するものです。また、あなたの質問には疑問がないことに注意してください。もし本当であるかどうかにかかわらず、私は自分の*を書くのが面倒なので、*私はコードを与えて*読んでください*と*必要があります*があります。この場所のトピックに関する良い質問は、たとえば「{example}を実行してスライダの値を変換しようとしましたが、0-1の代わりに{result}を取得しました。ありがとう。 – kazemakase

答えて

1

必要な範囲は30の整数なので、最初にスライダーの値に30を掛けます。今度は範囲が0...30になります。スライダーの値から50を引いてください。今あなたの範囲は-50...-20です。

逆の場合は、範囲を0...30に戻すために50を加算し、次に0...1の範囲で30で除算します。

+0

ありがとう。 '0 ... 1.0'の範囲から' -50 ...- 20'までの逆の方法です。フレーム範囲 '-50〜-20'を' 0 ... 1.0'にするのはどうでしょうか? – Udo

+0

ああ、私は変換を誤解しました。その後、逆を行う必要があります:50を加算し、30で除算します。 – xoudini

0

SelectedValueの= -35.0(答から)

let slideValue = (selectedValue - minValue)/(maxValue - minVlaue) 

sliderValue =このような0.5

0

トライ計算:

var updatedNormalizedValue: Float 

@IBAction func valuechanged(_ slider: UISlider) { 
    let min = slider.minimumValue 
    let max = slider.maximumValue 
    let interval = max - min 
    updatedNormalizedValue = (slider.value - min)/interval 
} 
関連する問題