У меня есть задача рисовать конкретную графику. В рамках этой задачи мне нужно вращать некоторую точку на 45 градусов.
Я потратил уже 2 дня, пытаясь вычислить формулу, но просто не мог понять это правильно. Я искал повсюду, включая этот конкретный сайт, я очень близко, но я все еще не там.
Вот он: Мне нужно нарисовать 4 разных точки.
У меня есть конкретная формула для вычисления позиции, которая выходит за рамки вопроса, но вот что я получаю в результате этого:
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);
Теперь мне нужно повернуть эти точки на 45 градусов. Для этого я использую следующий код:
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);
Но это то, что я получаю:
Любая помощь будет высоко оценена