高效旋转托盘,带4个插槽

时间:2011-01-07 12:12:25

标签: algorithm math

我有一个圆圈分为四分之一。我需要一种能够以最有效的方式将圆圈从一个位置旋转到另一个位置的算法。

“托盘”的名称为1到4.

我现在使用algoritm:

int degrees = (currentPos - newPos) * 90;

使用算法我得到旋转圆圈到达新位置所需的度数。但是如果我在位置4并且需要转到1,结果将是4 - 1 * 90 = 270.在这种情况下,最有效的是旋转-90而不是270.(同样适用于从1移动)到4)。

任何人都知道如何做到这一点?我当然可以使用if语句:

       if(degrees >= -180 && degrees <= 180) 
       sortingTrayMotor.rotate(degrees);
    else if(degrees == -270)
       sortingTrayMotor.rotate(90);
    else
        sortingTrayMotor.rotate(-90);

我想有一种更好的方法可以通过一些mod操作来实现它。

1 个答案:

答案 0 :(得分:2)

正是你正在做的事情,只有结果是&gt; 180度,减去360度。