简单笛卡尔转极坐标方法
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 属性的新结构。
正在尝试将某些笛卡尔坐标转换为极坐标。不是数学家。开始和结束值是度数。这有意义吗?
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 属性的新结构。