PDA

View Full Version : [C#] calcolo angoli


Easlay93
17-01-2015, 22:47
Qualcuno mi potrebbe aiutare come calcolare gli angoli e capire da che parte si gira il segmento?
ricevo da input una seria di coordinate X e Y, attraverso esse devo riuscire a calcolare l'angolo.
quando ottengo l'angolo mi deve apparire su console una scritta ad esempio girato a dx o sx o dritto.

io la avevo pensata in questo modo, qualcuno potrebbe aiutarmi ?
private void calcAngoli(int x, int y,int preX,int preY)
{
int angolo;

angolo =(int)(Math.Atan((x - preX) / (y - preY))) * (-1);
if (angolo == 0 )
{
Console.WriteLine("fermo");
SaveToFile.Salvataggio(" ","fermo");
}else if (angolo > 0 && angolo <91){
// devo capire come ha girato
}

[Kendall]
17-01-2015, 23:27
Qualcuno mi potrebbe aiutare come calcolare gli angoli e capire da che parte si gira il segmento?
ricevo da input una seria di coordinate X e Y, attraverso esse devo riuscire a calcolare l'angolo.
quando ottengo l'angolo mi deve apparire su console una scritta ad esempio girato a dx o sx o dritto.

io la avevo pensata in questo modo, qualcuno potrebbe aiutarmi ?
private void calcAngoli(int x, int y,int preX,int preY)
{
int angolo;

angolo =(int)(Math.Atan((x - preX) / (y - preY))) * (-1);
if (angolo == 0 )
{
Console.WriteLine("fermo");
SaveToFile.Salvataggio(" ","fermo");
}else if (angolo > 0 && angolo <91){
// devo capire come ha girato
}


Puoi riportare la consegna? Sinceramente non ho ben capito cosa ti chiede di fare il problema.

Easlay93
18-01-2015, 10:17
Stabilndo una connessione Server Client ricever una serie di coordinate, dovute al camminare di una persona. Determinare attraverso esse se gira a destra, a sinistra o va dritto. Utilizzando gli angoli per capire se se gira o meno

wingman87
18-01-2015, 13:08
Non basta avere solo l'ultimo segmento, devi avere anche il precedente e confrontare gli angoli.

Easlay93
18-01-2015, 15:23
e come faccio a capire se gira?
potresti mettere un esempio

Easlay93
19-01-2015, 09:14
se va diritto l'angolo compreso tra i due segmenti sarà 180°.

se va a destra sarà < di 180°, se va a sinistra sarà > di 180°. Dipende naturalmente da quale dei due angoli scegli, se alfa o il suo complementare a 360°. Se scegli l'altro avrai che le condizioni si invertono.

in codice come sarebbe?

[Kendall]
19-01-2015, 10:22
in codice come sarebbe?

Data la consegna dell'esercizio come dato in ingresso riceverai una lista di coordinate (x,y)

Devi crearti quindi una funzione che riceva in ingresso tre coordinate, cioè quelle che identificano i primi due vettori di spostamento.
A questo punto ti ritrovi con due vettori nel piano cartesiano.

Tu che faresti? ;)

Prova a buttare giù qualche idea e se hai dubbi vediamo di aiutarti (però è importante che ci sbatti un pò la testa prima).

edit: ecco, nel frattempo Antonio ti ha già dato uno spunto per una possibile soluzione (è un buon punto dal quale partire)

Easlay93
19-01-2015, 13:18
grazie ora ci provo

Easlay93
24-01-2015, 11:39
Ho un secondo problema con delle soglie.
Ricevo in input da un sensore modGyr una serie di dati(i quali sono >= 0)
e devo calcolare la soglia per capire se una persona è sdraiata, sdraiata/seduta, seduta, in piedi.
cercando una documentazione su internet mi dicevano di mettere le soglie a caso. c'è qualche funzione o modo per calcolarmi la soglia?

Easlay93
24-01-2015, 15:53
up