Autore Topic: Punti su un cerchio  (Letto 1474 volte)

Offline belalugosi

  • Utente junior
  • **
  • Post: 52
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    galaxy
  • Sistema operativo:
    Minuetos
Punti su un cerchio
« il: 29 Aprile 2011, 03:21:19 CEST »
0
Devo sistemare degli oggetti su un cerchio
Uso questa funzione per trovare i punti relativi alla circonferenza del cerchio
float X = cordX + (Raggio * (FloatMath.cos(gradi)));
float Y = cordY + (Raggio * (FloatMath.sin(gradi)));

Ho messo un ciclo for per aumentare i gradi, ma ho un problema.
Pensavo che i gradi dovessero partire da 0 e arrivare a 360, ma così facendo mi sembra che venga fatto più di un giro intorno al cerchio.

Sbaglio a dare i gradi in quel modo ?

Grazie

Offline 7h38ugg3r

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1200
  • Respect: +133
    • riccardofischetti
    • th38ugg3r
    • @7h38ugg3r
    • Mostra profilo
  • Dispositivo Android:
    Galaxy-S GT I-9000/ ASUS Eee Pad Transformer
  • Play Store ID:
    Riccardo Fischetti
  • Sistema operativo:
    OS X Lion / Linux Mint 11 (Katya)
Re:Punti su un cerchio
« Risposta #1 il: 29 Aprile 2011, 09:45:39 CEST »
0
dovrebbero andare da 0 a 359, in realtà....;)
il 360 è = 0.

scherzi a parte, matematicamente mi sembra corretto....

perché dici che ti sembra che faccia più di un giro?
7h38ugg3r<=>thebugger
Non conosci Java? Allora sei nel posto sbagliato!

http://www.androidpatterns.com/

Offline belalugosi

  • Utente junior
  • **
  • Post: 52
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    galaxy
  • Sistema operativo:
    Minuetos
Re:Punti su un cerchio
« Risposta #2 il: 29 Aprile 2011, 12:09:48 CEST »
0
Faccio disegnare 50 oggetti intorno alla circonferenza con un ciclo for che parte da 0 fino a 50 (i gradi)
Incremento di 1 grado e inserisco un oggetto.
Alla fine del ciclo for mi ritrovo la circonferenza tutta occupata e con elementi sovrapposti.
Non dovrebbe invece essere occupata per 50 gradi ?

Ciao

Offline Nicola_D

  • Utente storico
  • *****
  • Post: 2479
  • SBAGLIATO!
  • Respect: +323
    • Github
    • Google+
    • nicoladorigatti
    • Mostra profilo
  • Dispositivo Android:
    Nexus 6p, Nexus 4, Nexus S, Nexus 7(2012)
  • Sistema operativo:
    Windows 7
Re:Punti su un cerchio
« Risposta #3 il: 29 Aprile 2011, 12:14:18 CEST »
+1
Faccio disegnare 50 oggetti intorno alla circonferenza con un ciclo for che parte da 0 fino a 50 (i gradi)
Incremento di 1 grado e inserisco un oggetto.
Alla fine del ciclo for mi ritrovo la circonferenza tutta occupata e con elementi sovrapposti.
Non dovrebbe invece essere occupata per 50 gradi ?

Ciao
non è che 50 sono i radiandi?
IMPORTANTE:NON RISPONDO A PROBLEMI VIA MESSAGGIO PRIVATO
LOGCAT: Non sai cos'è? -> Android Debug Bridge | Android Developers
               Dov'è in Eclipse? -> Window -> Open Prospective -> DDMS e guarda in basso!
[Obbligatorio] Logcat, questo sconosciuto! (Gruppo AndDev.it LOGTFO) - Android Developers Italia

Offline belalugosi

  • Utente junior
  • **
  • Post: 52
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    galaxy
  • Sistema operativo:
    Minuetos
Re:Punti su un cerchio
« Risposta #4 il: 29 Aprile 2011, 12:24:54 CEST »
0
non saprei. trigonometria zero per quanto mi riguarda.
c'e' da fare qualche conversione quindi?

Offline 7h38ugg3r

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1200
  • Respect: +133
    • riccardofischetti
    • th38ugg3r
    • @7h38ugg3r
    • Mostra profilo
  • Dispositivo Android:
    Galaxy-S GT I-9000/ ASUS Eee Pad Transformer
  • Play Store ID:
    Riccardo Fischetti
  • Sistema operativo:
    OS X Lion / Linux Mint 11 (Katya)
Re:Punti su un cerchio
« Risposta #5 il: 29 Aprile 2011, 13:17:41 CEST »
0
+1 a Nicola.
Non avevo controllato la funzione, che effettivamente prende radianti e non gradi come parametro.....

angolo in radianti = angolo in gradi / 180 * 3.14, dove 3.14 è PIGRECO.

quindi incrementi di 1 l'angolo in gradi, lo converti in radianti e lo usi nella funzione.
oppure, fai 3.14/180 e sai di quanto devi incrementare il contatore da passare alla funzione, per incrementare di un grado per volta.
7h38ugg3r<=>thebugger
Non conosci Java? Allora sei nel posto sbagliato!

http://www.androidpatterns.com/

Offline belalugosi

  • Utente junior
  • **
  • Post: 52
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    galaxy
  • Sistema operativo:
    Minuetos
Re:Punti su un cerchio
« Risposta #6 il: 29 Aprile 2011, 13:53:49 CEST »
0
perfetto
grazie mille. era proprio così

ciao

Offline Nicola_D

  • Utente storico
  • *****
  • Post: 2479
  • SBAGLIATO!
  • Respect: +323
    • Github
    • Google+
    • nicoladorigatti
    • Mostra profilo
  • Dispositivo Android:
    Nexus 6p, Nexus 4, Nexus S, Nexus 7(2012)
  • Sistema operativo:
    Windows 7
Re:Punti su un cerchio
« Risposta #7 il: 29 Aprile 2011, 14:32:18 CEST »
0
+1 a Nicola.
Non avevo controllato la funzione, che effettivamente prende radianti e non gradi come parametro.....

angolo in radianti = angolo in gradi / 180 * 3.14, dove 3.14 è PIGRECO.

quindi incrementi di 1 l'angolo in gradi, lo converti in radianti e lo usi nella funzione.
oppure, fai 3.14/180 e sai di quanto devi incrementare il contatore da passare alla funzione, per incrementare di un grado per volta.
usa Math.PI o una cosa simile, e non 3.14, cosi è piu preciso :D

PS: mi sono dimenticato che la funzione che vuoi c'è gia!

Math (Java 2 Platform SE v1.4.2)
)
« Ultima modifica: 29 Aprile 2011, 14:35:11 CEST da Nicola_D »
IMPORTANTE:NON RISPONDO A PROBLEMI VIA MESSAGGIO PRIVATO
LOGCAT: Non sai cos'è? -> Android Debug Bridge | Android Developers
               Dov'è in Eclipse? -> Window -> Open Prospective -> DDMS e guarda in basso!
[Obbligatorio] Logcat, questo sconosciuto! (Gruppo AndDev.it LOGTFO) - Android Developers Italia

Offline belalugosi

  • Utente junior
  • **
  • Post: 52
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    galaxy
  • Sistema operativo:
    Minuetos
Re:Punti su un cerchio
« Risposta #8 il: 30 Aprile 2011, 02:19:22 CEST »
0
ok grazie mille
molto gentile


ciao