円形のuigestureRecognizerを書きます
-
02-10-2019 - |
質問
iPhone / iPadアプリケーションでジョグホイールを作成したいと考えています。私はあなたがあなた自身の認識者を書くためにあなたがサブクラスなuigesturerecognizerを書くことができることを知っています。おそらくパンジェスチャーと組み合わせて、円形の動きを検出するものを作成する方法(主にその背後にある数学)を知っている人はいますか?
ありがとう
解決
この質問は簡単ではありません。私は可能な解決策を考えるのに少し時間を費やします:
必要なのは、設定する必要がある重要なプロパティだと思います。
- 円形の動きの中心(この場合は問題ありません。ジョグホイールの中心を知っているからです)
- 動きが起こるはずの廊下。
- したがって、内側の半径と外側半径が必要です。
今、あなたはこのようなものを持っています(残念ながら私は十分な評判を持っていないので、リンクだけです: http://img17.imageshack.us/img17/4416/bildschirmfoto20100721u.png
今、この背後にある数学が始まります:
まず第一に、廊下を4四半期で手配します。
- 0°から90°
- 90°から180°
- 180°から270°
- 270°から360°
四半期ごとに、指が移動していることを把握する必要があります(0°ラインが中心点から上部までのものであるとしましょう):
- 指が第1四半期にある場合、xが左に変化して回転が反時計回りでなければならないかどうかがわかります。 xが右に変更された場合、回転は時計回りでなければなりません。
すべての四半期にこのロジックを適用します。これで、ジョギングホイールが時計回りに移動するのか、反時計回りに移動しているのかがわかりました。指が廊下を離れることは決してないことを確認する必要があります(このロジックをテストし、廊下を離れるために動きが停止すると、廊下を大きくします - Crystalskullのコメントに感謝します。人間のインターフェイスガイドラインに適用するための回廊)。
スマリー
したがって、中心点と指が入ることができる廊下が必要であると結論付けることができます。回転が時計回りであるか、反対である場合は、指がどの四半期に入っているか(x値を使用)を見つけなければなりません。時計回り。
これが少しお役に立てば幸いです。