Class: When::Ephemeris::CelestialObject

Inherits:
BasicTypes::Object show all
Includes:
When::Ephemeris
Defined in:
lib/when_exe/ephemeris.rb

Overview

天体

天体の特性を定義する

Direct Known Subclasses

Datum, Star

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

Constants included from Parts::Resource

Parts::Resource::LabelProperty, Parts::Resource::Prefix, Parts::Resource::PrefixIndex, Parts::Resource::PrefixKeys, Parts::Resource::PrefixValues

Instance Attribute Summary collapse

Attributes inherited from BasicTypes::Object

#label

Attributes included from Parts::Resource

#_pool, #child, #keys, #locale, #namespace

Instance Method Summary collapse

Methods included from When::Ephemeris

_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

Methods inherited from BasicTypes::Object

#tap

Methods included from Parts::Resource

#[], #^, _extract_prefix, _instance, _parse, _path_with_prefix, #each, #enum_for, #hierarchy, #include?, #included?, #iri, #leaf?, #m17n, #map, #next, #parent, #prev, #registered?

Methods included from Parts::Resource::Pool

#[], #[]=, #_pool, #_setup_, #pool_keys

Methods included from Parts::Resource::Synchronize

#synchronize

Dynamic Method Handling

This class handles dynamic methods through the method_missing method in the class When::Parts::Resource

Instance Attribute Details

#aberrationNumeric (readonly)

光行差 / 度

Returns:



714
715
716
# File 'lib/when_exe/ephemeris.rb', line 714

def aberration
  @aberration
end

#luminosityNumeric (readonly)

光度 / magnitude

Returns:



718
719
720
# File 'lib/when_exe/ephemeris.rb', line 718

def luminosity
  @luminosity
end

Instance Method Details

#coords(t, base = nil) ⇒ When::Ephemeris::Coords

天体位置 (黄道座標)

Parameters:

Returns:



728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
# File 'lib/when_exe/ephemeris.rb', line 728

def coords(t, base=nil)
  t = +t
  target_coords = self._coords(t)
  return target_coords unless base
  base_coords = base._coords(t)
  differrence = target_coords - base_coords
  delta_phi   = differrence.phi - base_coords.phi
  phi         = differrence.phi
  theta       = differrence.theta
  if @aberration && @aberration != 0
    phi -= @aberration / 360 * cosc(differrence.phi - target_coords.phi) / target_coords.radius
  end
  if base.respond_to?(:aberration)
    phi   += base.aberration / 360 / cosc(theta) * cosc(delta_phi) / base_coords.radius
    theta -= base.aberration / 360 * sinc(theta) * sinc(delta_phi) / base_coords.radius
  end
  Coords.polar(phi, theta, differrence.radius, differrence.c)
end