我有一個多點觸控WPF應用程序,我想旋轉一些東西。 ManipulationDelta
的問題,ManipulationOrigin
始終是2個手指之間的中心,但我想用移動的手指圍繞固定的手指旋轉。更改旋轉手指上的旋轉點已更改
實施例:Finger1固定在屏幕上並Finger2繞到它,與旋轉中心在所需Finger1點。然後手指2固定和手指1四處走動 - 現在輪轉中心在手指2點。所有這些都是在ManipulationStarted
和ManipulationCompleted
之間的一個會話之間完成的,因爲手指總是在屏幕上。
現在我試圖計算舊位置和新位置之間的矢量,並圍繞手指旋轉,哪個位置改變爲最小。它有效,但不是很好。
任何想法如何以更好的方式在每個時刻獲得正確的旋轉點?
UPD: 問題MSDN示例(克萊門斯代碼) - 在Finger1下的矩形改變它的位置,而Finger1被修復。
Finger1和Finger2在固定屏幕上。
Finger2左右旋轉Finger1
UPD2: 如果我做左右旋轉e.Menipulators.First().GetPosition(RotatingControl)
一切正常。問題是,手指可以改變,我需要知道現在哪個手指正在移動。這不是一個難題。但有時兩個手指會旋轉 - 在這種情況下,旋轉應該發生在ManipulationOrigin
這應該如何工作,例如,如果用戶開始使用Finger1固定並執行部分旋轉移動Finger2,然後修復Finger2並移動Finger1?旋轉點是否應該在每次操作時固定一次或者應該是動態的? –
它應根據當前旋轉的手指動態更改。 – igofed