Klassen des Pakets AstroOL: Zur Doku-Startseite Zurück zur Homepage

Klasse AspectPoint

Javadoc von AspectPoint   AspectPoint.java herunterladen

package AstroOL;

/** Eintrag des Aspektariums. Die Instanzen von AspectPoint
repräsentieren einen einzelnen Aspekt. Dies ist der
vordefinierte Datentyp für die Einträge im
{@link AstroOL.Horoscope#aspectarium Aspektarium} eines Horoskops,
das nichts anderes als eine sortierte Liste
von Aspektpunkten darstellt. Die Default-Sortierung mit der
Methode {@link #compareTo} erfolgt nach der ekliptikalen Länge.
In C würde man den Aspektpunkt als strukturierten Datentyp mit
der <code>typedef</code> Anweisung modellieren. Eine ähnliche
Anweisung gibt es in Java nicht. */
public class AspectPoint implements Comparable {
/** Ekliptikale Länge des Aspektpunkts */
  public double lon;
/** Ekliptikale Breite des Aspektpunkts */
  public double lat = 0d;
/** Den Aspekt bildender Planet oder Faktor */
  public int planet1;
/** Aspekt oder Code für "Spiegelpunkt" oder
    Code für "Parallelpunkt" oder Code für "Halbdistanzpunkt */
  public int aspect;
  public double angle;
/** Für Aspekte die Recht- oder Gegenläufigkeit. Ein positiver
Sextilaspekt wird vom Promissor in Reihenfolge der Tierkreiszeichen
gezählt, ein negativer in der Gegenrichtung */
  public char aspectSign;
/** Zweiter Planet oder Faktor, bei Halbsummen */
  public int planet2;

/** Defaultkonstruktor */
  public AspectPoint() {}

/** Konstruktor mit Übernahme der eklitpikalenm Länge */
  public AspectPoint( double lon ) {
    this.lon = lon;
    }
/** Vergleichsmethode für zwei Aspekte. Wird zum sortierten
Aufbau des {@link AstroOL.Horoscope#aspectarium Aspektariums}
verwendet. Verglichen werden die ekliptikalen Längen der
beiden Aspectpunkte */
  public int compareTo( Object o) {
    AspectPoint a1 = (AspectPoint) o;
    if (this.lon < a1.lon) return -1;
    else if (this.lon == a1.lon) return 0;
    else return 1;
    }

/** Länge eines Aspektpunktes für ein konkretes Horoskop */
  public static double getLon(AspectPoint a, Horoscope h) {
    double lon = 0d;
    if (a.aspect < Horoscope.hdp)
      lon = h.pl( a.planet1 ) + Horoscope.aspect[a.aspect] *
        ((a.aspectSign == '-') ? -1 : 1);
    else if (a.aspect == Horoscope.hdp)
    // Den nähergelegenen Halbdistanzpunkt zurückgeben
      lon = h.pl( a.planet1 ) +
             Calculator.arcdiff(h.pl(a.planet2),h.pl(a.planet1))/2;
    else if (a.aspect == Horoscope.azm)
      lon = 180d-h.pl(a.planet1);
    else if (a.aspect == Horoscope.aaz)
      lon = 360d-h.pl(a.planet1);
    else if (a.aspect == Horoscope.fra)
      lon = h.pl(a.planet1) + ((a.aspectSign == '-') ? -a.angle : a.angle);
    else if (a.aspect == Horoscope.frp)
      lon = a.lon;

    return Calculator.fmod360(lon);

    }

/** Aspektbreite */
  public static double getLat(AspectPoint a, Horoscope h) {

    // Zur Zeit nur Promissoren mit Breite Null implementiert
    return 0d;

    }

}



Zum Seitenanfang Lizenzbedingungen Der Quellcode wird mit dem GNU source-highlight 1.7 dargestellt