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

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

_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

#[], #^, _decode, _encode, _extract_prefix, _instance, _parse, _path_with_prefix, _replace_tags, _setup_, #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:


751
752
753
# File 'lib/when_exe/ephemeris.rb', line 751

def aberration
  @aberration
end

#luminosityNumeric (readonly)

光度 / magnitude

Returns:


755
756
757
# File 'lib/when_exe/ephemeris.rb', line 755

def luminosity
  @luminosity
end

Instance Method Details

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

天体位置 (黄道座標)

Parameters:

Returns:


765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
# File 'lib/when_exe/ephemeris.rb', line 765

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