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, 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

オブジェクトの生成

Parameters:

  • formula (When::Ephemeris::Formula)

    親オブジェクト

  • rotation (Numeric)

    ユガあたりの回転数

  • circumm (Numeric)

    マンダ円の半径

  • apogee (Numeric)

    近点黄経 / CIRCLE

  • sighra (Numeric)

    シグラ対象のカリユガあたりの回転数

  • circums (Numeric)

    シグラ円の半径



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

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

平均シグラ

Parameters:

  • ahar (Numeric)

    カリユガ暦元からの経過日数

Returns:



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

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

#_sighra_equation(anomaly) ⇒ Numeric

シグラ補正

Parameters:

  • anomaly (Numeric)

    平均近点角 / CIRCLE

Returns:



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

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

#_true_rotation(ahar, rotation) ⇒ Numeric

真黄経

Parameters:

  • ahar (Numeric)

    カリユガ暦元からの経過日数

  • rotation (Numeric)

    基準回転量 / CIRCLE

Returns:



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

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