根据水平速度和垂直速度计算正向夹角

转载自:https://www.fenxianglu.cn/article/403

图示:

根据水平速度和垂直速度计算正向夹角-

象限:

根据水平速度和垂直速度计算正向夹角-

一、atan实现

function calcAng(x, y) {
  if (y == 0 && x == 0) {
    return 0
  } else if (y > 0 && x == 0) {
    return 0
  } else if (y < 0 && x == 0) {
    return 180
  } else if (y == 0 && x < 0) {
    return 270
  } else if (y == 0 && x > 0) {
    return 90
  } else if (y > 0 && x > 0) {
    let angle = Math.atan(y / x) * 180 / Math.PI
    return 90 - angle
  } else if (y > 0 && x < 0) {
    let angle = (Math.atan(y / x) * 180 / Math.PI) * -1
    return 270 + angle
  } else if (y < 0 && x > 0) {
    let angle = Math.atan(y / x) * 180 / Math.PI * -1
    return 90 + angle
  } else {
    let angle = Math.atan(y / x) * 180 / Math.PI
    return 270 - angle
  }
}
calcAng(30, 40); // 36.86989764584402

二、acos实现

function calcAng(x, y) {
  if(x === 0 && y === 0) {
    return 0;
  }
  let temp = y / Math.sqrt(Math.pow(x, 2) + Math.pow(y, 2))
  let angle = Math.acos(temp) * 180 / Math.PI
  if (x < 0) {
    return 360 - angle
  }
  return angle
}
------本页内容已结束,喜欢请分享------

感谢您的来访,获取更多精彩文章请收藏本站。

© 版权声明
THE END
喜欢就支持一下吧
点赞13 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片