简单笛卡尔转极坐标方法

Simple Cartesian to Polar Coordinates method

正在尝试将某些笛卡尔坐标转换为极坐标。不是数学家。开始和结束值是度数。这有意义吗?

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

不完全是。当你这样做时

y = Math.Atan2(y, x);

,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 属性的新结构。