三角関数を使って特定の値を求める


座標計算する時に使うので、ひと通りまとめてみた。
やっつけで書いたんで、実際に使ってないのは間違ってるかも。

###
斜辺を求める
###

# 底辺と角度から
getHypotenuseFromBaAn = (base, angle) ->
  base / Math.sin(angle)

# 高さと角度から
getHypotenuseFromHeAn = (height, angle) ->
  height / Math.sin(angle)

# 底辺と高さから
getHypotenuseFromBaHe = (base, height) ->
  Math.sqrt Math.pow(base, 2) + Math.pow(height, 2)


###
高さを求める
###

# 底辺と角度から
getHeightFromBaAn = (base, angle) ->
  base * Math.tan(angle)

# 斜辺と角度から
getHeightFromHyAn = (hypotenuse, angle) ->
  hypotenuse * Math.sin(angle)

# 底辺と斜辺から
getHeightFromBaHy = (base, hypotenuse) ->
  Math.sqrt Math.pow(hypotenuse, 2) - Math.pow(base, 2)


###
底辺を求める
###

# 高さと角度から
getBaseFromHeAn = (height, angle) ->
  height / Math.tan(angle)

# 斜辺と角度から
getBaseFromHyAn = (hypotenuse, angle) ->
  hypotenuse * Math.cos(angle)

# 高さと斜辺から
getBaseFromHeHy = (height, hypotenuse) ->
  Math.sqrt Math.pow(hypotenuse, 2) - Math.pow(height, 2)


###
角度を求める
###

# 底辺と高さから
getAngleFromBaHe = (base, height) ->
  Math.atan2 height, base

# 底辺と斜辺から
getAngleFromBaHy = (base, hypotenuse) ->
  Math.acos base / hypotenuse

# 高さと斜辺から
getAngleFromHeHy = (height, hypotenuse) ->
  Math.asin height / hypotenuse

参考サイト