Trasformare angolo in 360°
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!
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
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
.

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

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?
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?
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).
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).
"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

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).
PS: il $\mod$ è come operatore predefinito nella stragrande maggioranza dei linguaggi di programmazione (come forse già ben sai).
"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

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

Se vorrai quando avrai terminato tutto il lavoro magari ce lo illustrerai più dettagliatamente.
A presto
