Class: When::Ephemeris::Hindu::Planet Abstract

Inherits:
RealGraha show all
Defined in:
lib/when_exe/region/indian.rb

Overview

This class is abstract.

惑星 - 逆行するもの

Direct Known Subclasses

InferiorPlanet, SuperiorPlanet

Constant Summary

Constants included from When::Ephemeris

AU, AcS, BCENT, C0, CIRCLE, COS, COSL, COSLT, COST, DAY, DEG, EPOCH1800, EPOCH1900, EPOCH1975, EPOCH2000, FARAWAY, JCENT, JYEAR, Jupiter, LIN, Mars, Mercury, Neptune, P0B, P0L, P0P, P0dB, P0dL, P1B, P1L, P1R, P2B, P2L, P2Q, P2dL, P3L, P3Q, P4B, P4L, P4Q, P4dL, P5B, P5L, P5Q, P5dL, P5l, P5n, P5r, P5t, P6B, P6L, P6Q, P6dL, P6l, P6n, P6r, P6t, P7B, P7L, P7R, P8B, P8L, P8R, P9B, P9L, P9R, PSEC, Pluto, SIN, SINL, SINLT, SINT, Saturn, Uranus, Venus

Instance Method Summary collapse

Methods inherited from RealGraha

#_manda_equation

Methods inherited from ClassicGraha

#_mean_rotation, #mean_longitude, #true_longitude

Methods included from When::Ephemeris

_adjust, _rot, _to_p2, _to_p3, _to_r3, acos, asin, cosc, cosd, delta_e, delta_p, julian_century_from_2000, julian_year_from_1975, obl, polynomial, root, sinc, sind, tanc, tand, trigonometric

Constructor Details

#initialize(formula, rotation, circumm, apogee, sighra, circums) ⇒ Planet

オブジェクトの生成



399
400
401
402
403
# File 'lib/when_exe/region/indian.rb', line 399

def initialize(formula, rotation, circumm, apogee, sighra, circums)
  @sighra  = sighra
  @circums = circums / 360.0
  super(formula, rotation, circumm, apogee)
end

Instance Method Details

#_mean_sighra(ahar) ⇒ Numeric

平均シグラ



359
360
361
# File 'lib/when_exe/region/indian.rb', line 359

def _mean_sighra(ahar)
  @sighra * ahar / @formula.civil_days
end

#_sighra_equation(anomaly) ⇒ Numeric

シグラ補正



349
350
351
# File 'lib/when_exe/region/indian.rb', line 349

def _sighra_equation(anomaly)
  atan2(@circums * sinc(anomaly), @circums * cosc(anomaly) + 1) / CIRCLE
end

#_true_rotation(ahar, rotation) ⇒ Numeric

真黄経



370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
# File 'lib/when_exe/region/indian.rb', line 370

def _true_rotation(ahar, rotation)
  # first sighra correction
  delta = _sighra_equation(_mean_sighra(ahar) - rotation) / 2

  # first manda correction
  mean  = _mean_rotation(ahar) + delta
  delta = _manda_equation(mean - @apogee) / 2

  # second manda correction
  mean -= delta
  delta = _manda_equation(mean - @apogee)

  # second sighra correction
  mean  = _mean_rotation(ahar) - delta
  delta = _sighra_equation(_mean_sighra(ahar) - mean)

  # true rotation
  mean + delta
end