私は次の関数を用いて線形関数にマッピング進歩のためのユーティリティを作成しました:値の間の進捗をS-カーブにマッピングする方法は?
public static func map<T: FloatingPoint>(progress: T, min: T, max: T) -> T {
assert(progress >= 0)
assert(progress <= 1)
return min + ((max - min) * progress)
}
これは、あなたが0の最小値を持っている場合は、線形値のセットと100の最大値を返し、次の値は、それぞれの進捗状況のために返されます。
は0.1 -> 10
0.2 -> 20
0.5 -> 50
0.8 -> 80
0.9 -> 90
私は近いあなたが進歩の開始点と終了点にあるS字曲線に戻り値をマッピングし、同様の機能を作成したいです結果は結果の影響を受けにくくなります。これは、例えば、CADisplayLinkを使ってアニメーションを滑らかにするのに非常に便利です。私は任意のポインタがいただければ幸いです。このためかなり基本的な数式があります確信している
0.1 -> 01
0.2 -> 10
0.5 -> 50
0.8 -> 90
0.9 -> 99
:上記の例のために期待される成果は、次のようになります!
ありがとうございます。私はこれを使って遊び、その結果をあなたに知らせます。 FloatingPointは、Float値とDouble値の総称です。 –
ありがとう@halileohalilei、私はあなたの答えを固定し、私が探していたものを得た。 –