从起点计算坐标,具有所有象限的距离和角度

时间:2015-11-03 20:36:05

标签: c# math geometry

我有:

private double AngleToRadians(double angle)
{
     return (Math.PI / 180) * angle;
}


double x = 30, y = 60;
var dist = 10;
var angle = 120;

x = x + dist * Math.Cos(AngleToRadians(angle));
y = y + dist * Math.Sin(AngleToRadians(angle));

这样做会给我一个新坐标,从(x,y)起点开始向方向(角度)10点。

这在右上象限中正常工作,但在其他三个象限中没有。

是否有一个适用于所有4个公式的公式?

2 个答案:

答案 0 :(得分:1)

x = x + dist * Math.Cos(AngleToRadians(angle)); y = y + dist * Math.Sin(AngleToRadians(angle));

对于中心点和终点,您似乎使用相同的x和y变量,因此每次更新中心坐标

只需使用x0, y0作为中心,x, y作为结束点

x = x0 + dist * Math.Cos(AngleToRadians(angle));

答案 1 :(得分:-1)

给出p(水平长度),b(垂直长度),x(坐标x),y(坐标y),r(球半径),θ(角度),L(直到球停止的距离) ,找到球停在的坐标(X,Y)。

提示:

如果台球桌无限大并且球无法到达墙壁,则可以通过以下公式计算出停球的坐标(X,Y)。 X = L * cos(θ)+ x Y = L * sin(θ)+ y