Immagino che questa sia una domanda semplice, ma sto ottenendo risultati strani con il mio codice corrente e non ho lo sfondo matematico per capire appieno il perché. Il mio obiettivo è semplice, come affermato nel titolo: voglio solo trovare il punto a una certa distanza e angolo da un punto centrale.Calcolo del punto sulla circonferenza del cerchio dall'angolo in C#?
mio codice corrente:
Point centerPoint = new Point (0, 0);
Point result = new Point (0, 0);
double angle = 0.5; //between 0 and 2 * PI, angle is in radians
int distance = 1000;
result.Y = centerPoint.Y + (int)Math.Round(distance * Math.Sin(angle));
result.X = centerPoint.X + (int)Math.Round(distance * Math.Cos(angle));
In generale, questo sembra funzionare ragionevolmente ragionevolmente, ma ottengo problemi in vari punti, in particolare quando l'angolo corrispondente a punti in x negative e sull'asse y. Chiaramente sto facendo qualcosa di sbagliato - pensieri su cosa sia?
AGGIORNAMENTO: Questo è stato un mio errore, questo codice funziona correttamente: i pochi valori anomali che non funzionavano erano in realtà dovuti a un errore nel calcolo dell'angolo per 1.5PI. Pensavo di averlo controllato abbastanza bene, ma evidentemente no. Grazie a tutti per il loro tempo, speriamo che il codice sopra riportato si riveli utile a qualcun altro.
Cosa vuol dire "Ho problemi in vari punti"? –
centerPoint è intenzionalmente inutilizzato? Non si dovrebbero aggiungere centerPoint.X e .Y al risultato? – spender
puoi fornire un esempio di problema? –