Mam zadanie narysować określoną grafikę. W ramach tego zadania muszę obrócić niektóre kropki na 45 stopni.Obracanie punktu wokół innego punktu
Spędziłem już 2 dni próbując obliczyć formułę, ale po prostu nie mogłem tego naprawić. Szukałem wszędzie w tym tej konkretnej witryny, jestem bardzo blisko, ale wciąż mnie nie ma.
Oto ona: muszę narysować 4 różne punkty
mam konkretny wzór do obliczenia tam pozycję, która jest poza zakresem tego pytania, ale tutaj jest to, co dostaję w wyniku z tego:
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);
teraz trzeba obracać to kropki na 45 stopni. Używam następujący kod do osiągnięcia go:
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);
Ale to co mi chodzi:
Każda pomoc będzie mile widziane
Właśnie zobaczyłem ten post po tym, jak napisałem. Ta formuła działa. –
jest idealny! Dziękuję Ci. Oto aktualny zrzut ekranu: http://s8.postimage.org/e7r44klcl/result.png –
Masz rację. Uczestnik biblioteki systemu operacyjnego musiał skopiować tę kopię ręcznie, ponieważ nawiasy zostały zgniecione, a testy jednostkowe wypadły źle. –