module MkCoord::Trigonometric
Public Instance Methods
compute_alpha(lambda, beta, eps)
click to toggle source
¶ ↑
α の計算 * α = arctan((-sinβ sinε + cosβ sinλ cosε ) / cosβ cosλ) @param: lambda (unit: rad) @param: beta (unit: rad) @param: eps (unit: rad) @return: alpha (unit: rad)
¶ ↑
# File lib/mk_coord/trigonometric.rb, line 54 def compute_alpha(lambda, beta, eps) a = -Math.sin(beta) * Math.sin(eps) \ + Math.cos(beta) * Math.sin(lambda) * Math.cos(eps) b = Math.cos(beta) * Math.cos(lambda) alpha = Math.atan2(a, b) alpha %= PI2 if a < 0 return alpha rescue => e raise end
compute_beta(alpha, delta, eps)
click to toggle source
¶ ↑
β の計算 * β = arcsisn((sinδ cosε - cosδ sinα sinε ) @param: alpha (unit: rad) @param: delta (unit: rad) @param: eps (unit: rad) @return: lambda (unit: rad)
¶ ↑
# File lib/mk_coord/trigonometric.rb, line 36 def compute_beta(alpha, delta, eps) a = Math.sin(delta) * Math.cos(eps) \ - Math.cos(delta) * Math.sin(alpha) * Math.sin(eps) return Math.asin(a) rescue => e raise end
compute_delta(lambda, beta, eps)
click to toggle source
¶ ↑
δ の計算 * δ = arcsisn((sinβ cosε + cosβ sinλ sinε ) @param: lambda (unit: rad) @param: beta (unit: rad) @param: eps (unit: rad) @return: delta (unit: rad)
¶ ↑
# File lib/mk_coord/trigonometric.rb, line 75 def compute_delta(lambda, beta, eps) a = Math.sin(beta) * Math.cos(eps) \ + Math.cos(beta) * Math.sin(lambda) * Math.sin(eps) return Math.asin(a) rescue => e raise end
compute_lambda(alpha, delta, eps)
click to toggle source
¶ ↑
λ の計算 * λ = arctan((sinδ sinε + cosδ sinα cosε ) / cosδ cosα) @param: alpha (unit: rad) @param: delta (unit: rad) @param: eps (unit: rad) @return: lambda (unit: rad)
¶ ↑
# File lib/mk_coord/trigonometric.rb, line 15 def compute_lambda(alpha, delta, eps) a = Math.sin(delta) * Math.sin(eps) \ + Math.cos(delta) * Math.sin(alpha) * Math.cos(eps) b = Math.cos(delta) * Math.cos(alpha) lambda = Math.atan2(a, b) lambda %= PI2 if lambda < 0 return lambda rescue => e raise end