Drehe einen Punkt um einen anderen Punkt

Ich habe eine Aufgabe zu zeichnen, eine bestimmte Grafik. Als Teil dieser Aufgabe muss ich drehen einige dot ' s auf 45 Grad.

Ich habe schon 2 Tage versucht zu berechnen, eine Formel, aber konnte einfach nicht bekommen es richtig.
Ich habe gesucht alle über den Ort, einschließlich dieser besonderen website, ich bin immer sehr nahe, aber ich bin immer noch nicht da.

Hier ist es:
Ich brauche zum zeichnen 4 verschiedene Punkte

Ich habe eine spezifische Formel zur Berechnung der position, die außerhalb des Bereichs der Frage, aber hier ist das, was ich immer als Ergebnis von:

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);

Drehe einen Punkt um einen anderen Punkt

Nun muss ich drehen diese Punkte auf 45 Grad. Ich verwende den folgenden code, um es zu erreichen:

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);

Aber das ist, was ich immer bin:

Drehe einen Punkt um einen anderen Punkt

Jede Hilfe wäre sehr geschätzt werden

InformationsquelleAutor der Frage Vlad Spreys | 2012-12-04

Schreibe einen Kommentar