当给定 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]
}
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);