Trasformare angolo in 360°

AldoZ1
Ciao ragazzi, sto programmando un robot e quindi affrontando varie tematiche matematiche.

Ho bisogno di un vostro aiuto!
Grazie ad un giroscopio, ottengo l'angolo (asse verticale) in cui il muso del robot punta. Diciamo una specie di bussola in cui non ho il nord magnetico ma il nord sara' sempre un punto preciso.
Il mio problema e' che quest'angolo non l'ottengo da 0 a 360° ma da -0 a -179 e da +0 a +179..
Quindi vorrei solo trasformare con qualche formula per ottenere da 0 a 360°

Mi aiutate per favore? grazie!

Risposte
onlyReferee
Ciao AldoZ :!:
Dopo averci ragionato sopra secondo me puoi procedere in questo modo (chiamo $\alpha$ l'angolo nella scala del robot e $\beta$ quello nei gradi nella scala classica da $0°$ a $360°$):
\[
\begin{cases}
\beta = (\alpha + 361) \mod 360 \qquad \text{ se } -179 \le \alpha \le -0\\
\beta = (\alpha + 360) \mod 360 \qquad \text{ se } +0 \le \alpha \le +179
\end{cases}
\] [nota]Con $\mod$ intendo la classica operazione del resto della divisione.[/nota]
Nel caso dell'angolo avente valore negativo è necessario effettuare la somma con $361$ anziché $360$ altrimenti non si ottiene mai il valore $180$ che verrebbe quindi "perso".
Commenti, suggerimenti, segnalazioni di errori sono ovviamente gradite :D.

AldoZ1
Ciao onlyReferee e grazie per la risposta!
Non capisco pero' cosa intendi per mod..
Intendi per caso che il risultato della somma di alpha+361 va diviso per 360?

Ed e' giusto se dico che per decidere se utilizzare 361 o 360 dipendera' solo da valore attuale di alpha?
Esempio:
Se alpha e' <= -0 e >=-179 ----> verra' utilizzato 361 nella formula per trovare beta
Se alpha e' >= -0 e <= 179 ----> verra' utilizzato 360 nella formula per trovare beta

giusto?

onlyReferee
In generale $a \mod b$ è il resto della divisione intera tra $a$ e $b$. Ad esempio si ha che $13 \mod 4 = 1$.
Riguardo poi al tuo secondo dubbio: hai interpretato in maniera esatta, la formula da applicare dipende appunto solo dal valore di $\alpha$ (vedi infatti cosa c'è scritto nei $\text{se}$ della formula per i casi da applicare).

AldoZ1
"onlyReferee":
In generale $a \mod b$ è il resto della divisione intera tra $a$ e $b$. Ad esempio si ha che $13 \mod 4 = 1$.
Riguardo poi al tuo secondo dubbio: hai interpretato in maniera esatta, la formula da applicare dipende appunto solo dal valore di $\alpha$ (vedi infatti cosa c'è scritto nei $\text{se}$ della formula per i casi da applicare).


Oh ecco quindi e' il mod che c'e' anche nella calcolatrice.
Grazie 1000 onlyReferee domani mattino provo ad applicare questa formula al mio codice e ti faro' sapere :)

onlyReferee
Prego, di nulla. Fammi sapere se funziona, non vorrei aver fatto i calcoli in maniera troppo rapida omettendo casi particolari.
PS: il $\mod$ è come operatore predefinito nella stragrande maggioranza dei linguaggi di programmazione (come forse già ben sai).

AldoZ1
"onlyReferee":
Prego, di nulla. Fammi sapere se funziona, non vorrei aver fatto i calcoli in maniera troppo rapida omettendo casi particolari.
PS: il $\mod$ è come operatore predefinito nella stragrande maggioranza dei linguaggi di programmazione (come forse già ben sai).


onlyReferee funziona alla grandissima! :)

Grazie davvero, sei stato davvero di aiuto! ora potro' far seguire al mio robot la rotta :)

onlyReferee
Molto bene, mi fa davvero piacere esserti stato d'aiuto :!:
Se vorrai quando avrai terminato tutto il lavoro magari ce lo illustrerai più dettagliatamente.
A presto :!:

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.