我有:
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));
Run Code Online (Sandbox Code Playgroud)
这样做是返回一个新坐标,从 (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));