DeltaManipulation.Rotation如何确定旋转是顺时针还是逆时针?

时间:2018-01-22 21:28:22

标签: c# wpf touch

我需要使用DeltaManipulation.Rotation确定旋转方向。 代码工作,但每次顺时针或逆时针完成旋转时返回错误信息。 我做错了什么?

 int oldValue = 0;
 int realValue;
 private void ManipulationDelta(object sender, ManipulationDeltaEventArgs e)
    {
        e.Handled = true;

        MyRotateTransform.Angle += e.DeltaManipulation.Rotation;
        int angle = (int)MyRotateTransform.Angle;
        realValue = angle % 360;

        if (realValue < 0)
        {
            realValue = 360 - (-realValue);
        }


        if (realValue > oldValue)
        {
            //clockwise rotation
            oldValue = realValue;
        }

        if (realValue < oldValue)
        {

              //counterclockwise rotation
            oldValue = realValue;
        }

    }

1 个答案:

答案 0 :(得分:0)

不要检查MyRotateTransform.Angle中的累积(和标准化)旋转角度。相反,只需检查e.DeltaManipulation.Rotation

如果它小于零,则旋转是逆时针旋转,旋转顺时针旋转大于零:

if (e.DeltaManipulation.Rotation < 0)
{
    Debug.WriteLine("counterclockwise");
}
else if (e.DeltaManipulation.Rotation > 0)
{
    Debug.WriteLine("clockwise");
}