我有一个四分之一的圆。我需要一个能以最有效的方式将圆从一个位置旋转到另一个位置的算法。
“信盒”命名为1到4。
我现在使用算法:

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);

我想有一个更好的方法来做这件事,虽然一些国防部的操作。

最佳答案

正是你所做的,只有当结果大于180度时,减去360度。

08-19 20:08