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, PSEC, Pluto, SIN, SINL, SINLT, SINT, Saturn, Uranus, Venus

Constants included from Namespace

Namespace::DC, Namespace::DCQ, Namespace::DCT, Namespace::FOAF, Namespace::OWL, Namespace::RDF, Namespace::RDFC, Namespace::RDFS, Namespace::RSS, Namespace::XSD

Instance Attribute Summary collapse

Attributes inherited from BasicTypes::Object

#label

Attributes included from Parts::Resource

#child, #keys, #locale, #namespace

Instance Method Summary collapse

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

Methods included from Parts::Resource

#[], #^, _instance, _setup_, _setup_info, base_uri, #each, #enum_for, #hierarchy, #include?, #included?, #iri, #leaf?, #m17n, #map, #parent, #registered?, root_dir

Methods included from Parts::Resource::Pool

#[], #[]=, #_setup_

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:



757
758
759
# File 'lib/when_exe/ephemeris.rb', line 757

def aberration
  @aberration
end

#luminosityNumeric (readonly)

光度 / magnitude

Returns:



761
762
763
# File 'lib/when_exe/ephemeris.rb', line 761

def luminosity
  @luminosity
end

Instance Method Details

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

天体位置 (黄道座標)

Parameters:

Returns:



771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
# File 'lib/when_exe/ephemeris.rb', line 771

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