给定角度和距离时查找位置

问题描述 投票:0回答:1

当给定 0 到 2pi 之间的角度以及距原点的距离时,我想使用 javascript 来定位笛卡尔坐标系上任意点的 x 和 y 坐标。

有没有更简单的方法来编写这个函数? (在我的程序中,角度是从(1,0)开始顺时针测量的)

function findPosition(distance, angle){
    let dx, dy;
    if (angle >= 0 && angle <= Math.PI/2){
        dx = distance * Math.cos(angle);
        dy = distance * Math.sin(angle);
    } else if (angle > Math.PI/2 && angle <= Math.PI){
        dx = -distance * Math.cos(angle);
        dy = distance * Math.sin(angle);
    } else if (angle > Math.PI && angle <= 3 * Math.PI / 2){
        dx = -distance * Math.cos(angle);
        dy = -distance * Math.sin(angle);
    } else if (angle > 3* Math.PI/2 && angle <= 2 * Math.PI){
        dx = distance * Math.cos(angle);
        dy = -distance * Math.sin(angle);
    } else {
        console.log("Error: Bad angle");
    }
    return [dx , dy]
}
javascript trigonometry
1个回答
0
投票
function findPosition(distance, angle) {
  const dx = distance * Math.cos(angle);
  const dy = distance * Math.sin(angle);
  return [dx, dy];
}

如果你的角度是从(1,0)开始顺时针测量的,你可以像这样修改函数调用:

const angle = 2 * Math.PI - desiredAngle;
const position = findPosition(distance, angle);
© www.soinside.com 2019 - 2024. All rights reserved.