J'ai un cercle divisé en quarts. J'ai besoin d'un algorithme capable de faire tourner le cercle d'une position à l'autre de la manière la plus efficace.Plateau rotatif efficace à 4 emplacements
Les « plateaux » sont nommés 1 à 4.
J'utilise maintenant le Algoritm:
int degrees = (currentPos - newPos) * 90;
en utilisant l'algorithme je reçois combien de degrés que je dois tourner le cercle pour se rendre à la nouvelle position. Cependant, si je suis en position 4 et que je dois passer à 1, le résultat sera 4 - 1 * 90 = 270. Dans ce cas, le plus efficace serait de faire tourner -90 au lieu de 270. (de même pour passer de 1 à 4).
Quelqu'un a-t-il eu une bonne idée de comment faire cela? Je peux bien sûr utiliser une instruction if:
if(degrees >= -180 && degrees <= 180)
sortingTrayMotor.rotate(degrees);
else if(degrees == -270)
sortingTrayMotor.rotate(90);
else
sortingTrayMotor.rotate(-90);
Je suppose qu'il existe une meilleure façon de le faire avec une opération mod.