マルチタッチWPFアプリケーションがあり、その中のいくつかのものをローテーションしたいと思います。の問題はManipulationDelta
、ManipulationOrigin
常に2本の指の間の中心ですが、固定された1本の指を中心に指を動かしながら回転させたいと思います。
例:Finger1が画面に固定され、Finger2がその周りを回転し、 Finger1ポイントの中心で回転する必要があります。次に、 Finger2が固定され、Finger1が回転します。Finger2ポイントを中心に回転します。指は常に画面上にあるため、これらすべての作業はManipulationStarted
との1つのセッションの間に行われます。ManipulationCompleted
今、私は古い位置と新しい位置の間のベクトルを計算し、指の周りを回転させようとしています。この位置は最小限に変更されました。それは機能しますが、あまりうまくいきません。
より良い方法であらゆる瞬間に正しい回転点を取得する方法はありますか?
UPD: MSDNの例の問題(クレメンスのコード)-Finger1の下の長方形は位置を変更しますが、Finger1は修正されました。
画面に固定されたFinger1とFinger2。
Finger2がFinger1を中心に回転
UPD2:
私が回転をすればe.Menipulators.First().GetPosition(RotatingControl)
すべてがOKです。問題、その指は変更できるので、現在どの指が動いているかを知る必要があります。それは難しい問題ではありません。しかし、時々両方の指が回転します-そのような場合、回転は周りで発生するはずですManipulationOrigin