Ho un compito per disegnare un'immagine specifica. Come parte di questo compito ho bisogno di ruotare alcuni punti su 45 gradi.Ruota un punto attorno a un altro punto
Ho trascorso già 2 giorni cercando di calcolare una formula, ma non riuscivo a farlo bene. Ho cercato dappertutto, incluso questo particolare sito, mi sto avvicinando molto, ma non ci sono ancora.
Eccola: Ho bisogno di disegnare 4 punti diversi
ho una formula specifica per calcolare lì posizione, che è fuori della portata della domanda, ma qui è quello che sto ottenendo come risultato di esso:
int radius = 576;
int diameter = radius * 2;
Point blueA = new Point(561, 273);
Point greenB = new Point(273, 561);
Point yellowC = new Point (849, 561);
Point redD = new Point (561, 849);
Ora ho bisogno di ruotare questi punti su 45 gradi. Io uso il seguente codice per realizzarla:
double rotationAngle = 45;
double rotationRadians = rotationAngle * (Math.PI/180);
int center = radius;
result.X = (int)(Math.Cos(rotationRadians) * ((double)result.X - (double)center) - (double)Math.Sin(rotationRadians) * ((double)result.Y - center) + (double)center);
result.Y = (int)(Math.Sin(rotationRadians) * ((double)result.X - (double)center) + (double)Math.Cos(rotationRadians) * ((double)result.Y - center) + (double)center);
Ma è quello che sto ottenendo:
Qualsiasi aiuto sarebbe molto apprezzato
Ho appena visto questo post dopo l'invio. Questa formula funziona. –
è perfetto! Grazie. Ecco la schermata corrente: http://s8.postimage.org/e7r44klcl/result.png –
Hai ragione. Un contributore a una lib di OS deve aver copiato questa mano perché la parentesi è stata rovinata e risulta errata nei test di unità. –