2

setPercentCompletedたとえば、1 秒間に 500 ポイントの距離にわたって呼び出したいメソッドを持つコンポーネントがあります。

これを線形に行うには、タイマーを特定の間隔に設定し、タイマーがsetPercentCompleted起動するたびに呼び出します。

ease-out曲線を使用してこの機能を実装するにはどうすればよいですか?

4

2 に答える 2

1

これは物理学の質問に非常によく似ています。

特定の時間(1.0秒)内に特定の「変位」(1.0)に到達するには、特定の「減速」で特定の「速度」で出発する必要があります。

決定する必要のある2つの数値は、初速度と必要な減速度です。

SUVATを使用し、s=1およびt=1に代入します。

あなたはから得る

s = ut + 1/2 * at^2

a = 2 - 2u

初速度(u)と適用する加速度(a)がこの方程式を機能させる限り、1秒に1の距離に到達します。

数値をスプレッドシートに入れると、効果を確認できます。uの値を0から2の間で選択する必要があります。これにより、1秒で1.0に到達するために必要な加速度が得られます。

あなたはあなたのu量の開始値を持っていて、それからあなたの値によって毎回それを加速します。

実際、uの値を0から1の間で選択すると、「イーズイン」効果が得られます。uの値を1から2の間で選択すると、「イーズアウト」効果が得られます。

于 2012-12-17T18:05:17.673 に答える
0

イージング関数を実装するためのさまざまな方程式があります。このJQuery イージング プラグインからインスピレーションを得ることができます。ソース コードは、Objective C に簡単に移植できるほど単純である必要があります。

于 2012-12-17T18:25:00.860 に答える