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)

    シグラ円の半径


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

平均シグラ

Parameters:

  • ahar (Numeric)

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

Returns:


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

シグラ補正

Parameters:

  • anomaly (Numeric)

    平均近点角 / CIRCLE

Returns:


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

真黄経

Parameters:

  • ahar (Numeric)

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

  • rotation (Numeric)

    基準回転量 / CIRCLE

Returns:


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