0

私の質問は、ユーザーがすばやくスワイプした場合に、画面のスワイプの勢いを維持してスクロールを維持するために、どのアルゴリズムまたは数学を使用する必要があるかということです。

例: 画面上に円を描いて回転する画像があり、ユーザーがカメラをゆっくりスワイプすると、指に沿って移動します。ただし、ユーザーが非常に速くそれを行う場合、ユーザーがスワイプする速度に応じて、画像はカルーセルのように数秒間回転する必要がありますか?

ユーザーが画面に触れたときのポイントと、ユーザーがスワイプを続けて指を離したポイントを取得できますか?

1秒間に60回呼び出されるメソッドがあるので、アイデアはありますか?

4

1 に答える 1

1

基本的に、初期速度 (たとえば、ポイント/秒で測定) と減速率 (ポイント/秒^2 で測定) が必要です。ジェスチャー認識機能を使用してスワイプを検出すると、無料で速度が得られます。それ以外の場合は、スワイプのさまざまな段階の位置とタイムスタンプから自分で計算する必要があります。

次に、更新メソッドで、速度に応じてビューを進めます。

distance travelled = velocity * time

減速率を使用して、次のフレームの速度を更新します。

delta_v = deceleration rate * time // should give a negative value
new velocity = velocity + delta_v

速度が 0 に近いしきい値まで低下するとすぐに、モーションを停止します。

これらの式は直線運動用ですが、円運動をしている場合でも、実験してみます. または、角速度で同じ計算を行うこともできます。ウィキペディアには、おそらく知っておく必要のある式があります。

于 2012-01-01T09:32:47.900 に答える