我有一个多点触控 WPF 应用程序,我想在其中旋转一些东西。的问题ManipulationDelta
,ManipulationOrigin
始终是两根手指之间的中心,但我想用移动的手指围绕固定的手指旋转。
示例:Finger1固定在屏幕上,Finger2围绕它旋转,需要以Finger1点为中心旋转。然后Finger2固定,Finger1转动——现在以Finger2点为中心旋转。所有这些都是在一次ManipulationStarted
和之间完成的ManipulationCompleted
,因为手指总是在屏幕上。
现在我正在尝试计算旧位置和新位置之间的矢量,并围绕手指旋转,该位置变化最小。它有效,但不是很好。
任何想法如何以更好的方式在每一刻获得正确的旋转点?
UPD: MSDN 示例的问题(Clemens 的代码) - Finger1 下的矩形改变了它的位置,而 Finger1 已修复。
Finger1 和 Finger2 固定在屏幕上。
Finger2 围绕 Finger1 旋转
UPD2:
如果我旋转e.Menipulators.First().GetPosition(RotatingControl)
一切都可以。问题,那个手指可以改变,我需要知道现在哪个手指在移动。这不是一个难题。但有时两个手指都会旋转——在这种情况下,旋转应该发生在ManipulationOrigin