0
点赞
收藏
分享

微信扫一扫

linux 系统安装kvm

时光已翩然轻擦 2024-10-15 阅读 29

气象学中风向是以八分法(八个主要方向)或者十六分法(十六个细分方向)来描述的。js算法如下:

八风位

  • 在八风位中,只有主要的八个方向:北(N)、东北(NE)、东(E)、东南(SE)、南(S)、西南(SW)、西(W)、西北(NW)
export const getDirection = (direction ) => {
  let reg = Number(direction.value);
  // 定义新的方向数组
  const arr = ["N", "NE", "E", "SE", "S", "SW", "W", "NW"];
  const step = 45; // 每个八风位之间的角度
  if (reg < 0) {
    reg += 360;
  }

  let result = "";
  const base = 22.5; // 基准角度调整到每个扇区的中点
  for (let i = 0; i < arr.length; i++) {
    const n = i * step + base;
    if (reg < n || reg === n) {
      result = arr[i];
      break;
    }
  }
  return result;
};

十六分位

  • 在十六风位中,有更加细分的十六个方向:北(N)、北北东(NNE)、东北(NE)、东东北(ENE)、东(E)、东东南(ESE)、东南(SE)、南东南(SSE)、南(S)、南南西(SSW)、西南(SW)、西西南(WSW)、西(W)、西西北(WNW)、西北(NW)、北西北(NNW)。

export const getDirection = (direction ) => {
  let reg = Number(direction.value);
  const arr = ["N", "NNE", "NE", "ENE", "E", "ESE", "SE", "SSE", "S", "SSW", "SW", "WSW", "W", "WNW", "NW", "NNW"];
  const step = 22.5;
  if (reg < 0) {
    reg += 360;
  }

  let result = "";
  const base = 11.25;
  for (let i = 0; i < arr.length; i++) {
    const n = i * step + base;
    if (reg < n || reg === n) {
      result = arr[i];
      break;
    }
  }
  return result;
};
举报

相关推荐

0 条评论