Метод простых декартовых и полярных координат
Попытка преобразовать некоторые декартовы в полярные координаты. Не математик. Начальное и конечное значения являются градусами. Имеет ли это смысл?
Point outerScreenPointBefore = CartesianToPolar(Start, End);
Метод конвертера:
private Point CartesianToPolar(double x, double y)
{
x = Math.Sqrt((x*x) + (y + y));
y = Math.Atan2(y, x);
return new Point(x, y);
}
1 ответ
Решение
Не совсем. Когда вы делаете
y = Math.Atan2(y, x);
, х уже было присвоено новое значение в предыдущей строке:
x = Math.Sqrt((x*x) + (y*y));
Итак, вам нужно рассчитать оба значения, прежде чем назначать их:
double radius = Math.Sqrt((x*x) + (y*y));
double angle = Math.Atan2(y, x);
return new Point(radius, angle);
Полярные координаты используют не обозначения x и y, а r и θ, поэтому значение может быть неясным для того, кто читает ваш код.
Возможно, вы захотите создать новую структуру со свойствами Radius и Angle.