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

本文关键字:距离 坐标 计算 起点 | 更新日期: 2023-09-27 18:20:29

我有:

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种情况?

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

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

a(水平长度),b(垂直长度),x(坐标x),y(坐标y),r(球体半径),θ(角度),L(直到球停止的距离),找到球停止的坐标(x,y)。

提示:

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