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

オブジェクトの生成



436
437
438
439
440
# File 'lib/when_exe/region/indian.rb', line 436

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

平均シグラ



396
397
398
# File 'lib/when_exe/region/indian.rb', line 396

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

#_sighra_equation(anomaly) ⇒ Numeric

シグラ補正



386
387
388
# File 'lib/when_exe/region/indian.rb', line 386

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

#_true_rotation(ahar, rotation) ⇒ Numeric

真黄経



407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
# File 'lib/when_exe/region/indian.rb', line 407

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