簡単に言えば、ループ遅延にイージングを適用する方法を理解しようとしています。ループ遅延に緩和を適用する
for (i := 0; i < 114; i++) {
// do a task
time.Sleep(//delay before next job)
}
これは読めるので、これは非常に基本的なものです。 3秒でループ全体を完了したいとしましょう(ジョブ完了時間は無視できます、t <= us
)。 Penner's Equationsの適切な方法は、それぞれの反復に対して、適切に緩和された遅延を計算するものですか?
したがって、ゼロ速度からの加速をシミュレートするには、ループの各反復でt
パラメータを使用してスリープするための適切な遅延を作成する方法を教えてください。
私がこのことについてお手伝いできるなら、私は非常に感謝しています。方程式はこれまでのところ問題ではありませんが、代わりにユースケースでそれらを使用する方法があります。
私の質問は最初は次のようになります。Applying easing to setTimeout delays, within a loop しかし、これはループの合計時間を考慮していません。
しかし、私は[0,1]範囲で、パラメータを1つだけ使用するように書き換えられた方程式を使用する方が良いかもしれないと思う:https://gist.github.com/rezoner/713615dabedb59a15470
私の理解から、私は「パーセントの時間が経過し、」抽象を計算する必要が何らかの形でこの値をイージング関数で補間します。
このノードプロジェクトはちょうどそれを行うようです:https://github.com/CharlotteGore/animation-timer、しかし再び私はそれを再現する方法を見つけることができません。
うわー、おかげで、あなたはそれをはっきりと作った。ですから、別のイージング関数を使うには、同じパラメータで 'this'と' last'をどのように計算するのかを変えなければなりませんか? –
正確に。ちなみに、必要に応じて、少しでも機能的なプログラミングを使って動的に行うこともできます。例:https://play.golang.org/p/JQCIOWwxEs – Kaedys
申し訳ありません。あなたが遅れを計算する方法によると思われますが、 'inOutQuad'の式(http://easings.net/fr#easeInOutQuad)のグラフによると、遅れは増加するのではなく減少の減少になるはずですフレーム57-58減少時に停止する。 –