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

オブジェクトの生成

Parameters:

  • formula (When::Ephemeris::Formula)

    親オブジェクト

  • rotation (Numeric)

    ユガあたりの回転数

  • circumm (Numeric)

    マンダ円の半径

  • apogee (Numeric)

    近点黄経 / CIRCLE

  • sighra (Numeric)

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

  • circums (Numeric)

    シグラ円の半径



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

平均シグラ

Parameters:

  • ahar (Numeric)

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

Returns:



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

シグラ補正

Parameters:

  • anomaly (Numeric)

    平均近点角 / CIRCLE

Returns:



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

真黄経

Parameters:

  • ahar (Numeric)

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

  • rotation (Numeric)

    基準回転量 / CIRCLE

Returns:



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