简单的笛卡尔坐标到极坐标方法

时间:2015-12-16 14:39:59

标签: c# wpf trigonometry

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

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 个答案:

答案 0 :(得分:3)

不完全是。当你这样做

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