尝试将一些笛卡尔坐标转换为极坐标。不是数学家。开始和结束值是度。这有意义吗?
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);
}
答案 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属性的新结构。