|
Astrologische Berechnungen | ||||||
| VORIGE KLASSE NÄCHSTE KLASSE | MIT FRAMES OHNE FRAMES | ||||||
| ÜBERBLICK: INNERE KL. | FELD | CONSTR | METHOD | DETAIL: FELD | CONSTR | METHOD | ||||||
java.lang.Object | +--AstroOL.Calculator
Diese Klasse bietet "billige" Hilfsrechnungen, wie sie auf dem Client leicht ausgeführt werden können, zum Beispiel Kalenderberechnungen und formatierte Ein- und Ausgabe.
Instanzen von Calculator dienen als Horoskopberechner,
da die Klasse das Interface ICalculator implementiert. Die in dieser
Klasse definierte Standardimplementierung
ruft zur Berechnung der Planeten und Häuser ein Servlet auf.
Darüberhinaus enthält die Klasse Basismethoden, die eigentlich
in java.lang.Math oder java.util.* gehören, dort aber entweder
nicht vorhanden sind oder zu einem JDK-Release > 1.1, so dass
Klassen, die diese Methoden verwenden, für Benutzer des Microsoft
Internet Explorer 5.5 mit der Microsoft VM unbenutzbar wären.
Beispiele: Signumfunktion, Sortieralgorithmus
für lange Ganzzahlen.
Die Rechenfunktionen sind, genau wie die von java.lang.Math, rein statisch (ohne Instanz-Erzeugung).
| Überblick Felder | |
static double |
DEFAULT_LAT
Default-Breite, falls keine Breite von aussen mitgegeben wurde (47,36 Grad Nord) |
static double |
DEFAULT_LON
Default-Länge, falls keine Länge von aussen mitgegeben wurde (8,55 Grad Ost) |
static java.lang.String |
digit
Ziffern-String für Formatierungen (Wert "0123456789"). |
static long |
ECL
dms-Funktion: Ausgabe einer ekliptikale Länge. |
static long |
GEO
dms-Funktion: Ausgabe als Winkel zwischen 0 und 360°. |
static long |
LAT
dms-Funktion: Ausgabe einer geographischen Breite. |
static long |
LONG
dms-Funktion: Ausgabe einer geographischen Länge. |
static long |
NO_ROUND
dms-Funktion: Keine Rundung. |
static java.lang.String |
pknam
Kurznamen der Planeten für Listausgaben. |
static long |
SEC
dms-Funktion: Ausgabe ist sekundengenau gewünscht. |
static java.lang.String |
sknam
Kurznamen der Tierkreiszeichen für Listausgaben. |
static long |
TIME
dms-Funktion: Zeitangabe (Sternzeit, Ortszeit o.ä.). |
static double |
toDeg
Umwandlungsfaktor Bogenmass in Grad (57.295...) |
static double |
toRad
Umwandlungsfaktor Grad in Bogenmass (0.01745...) |
| Überblick Konstruktoren | |
Calculator()
|
|
| Methoden-Überblick | |
static double |
acos(double x)
Wrapper für ArcusCosinus im Gradmass |
static boolean |
analyzeString(java.io.BufferedReader in,
double[] h,
double[] pl)
Einen String, der die Planeten- und Hauspositionen enthält, analysieren. |
static double |
arcdiff(double x,
double y)
Hilfsfunktion zur Berechnung des Winkelabstandes. |
static double |
arcdiffAbs(double x,
double y)
Wie arcdiff(), jedoch wird der Absolutbetrag des Winkelabstandes zurückgegeben, also eine Zahl zwischen 0 und 180 Grad. |
static double |
asin(double x)
Wrapper für ArcusSinus im Gradmass |
static double |
atan(double x)
Wrapper für ArcusTangens im Gradmass |
static double |
atan2(double x,
double y)
Wrapper für ArcusTangens im Gradmass |
static int[] |
calendarDate(double jd)
Julianisches Datum in Kalenderdatum konvertieren. |
static double |
cos(double x)
Wrapper für Cosinus im Gradmass |
static java.lang.String |
date(double jd)
Julianisches Datum in Kalenderdatum als String umrechnen |
static java.lang.String |
dms(double x)
Gradzahl ins Grad-Minuten-Sekundensystem wandeln. |
static java.lang.String |
dms(double x,
long format)
Dezimalzahl ins Sexagesimalsystem wandeln. |
static java.lang.String |
doubleList(double[] x)
Einen Array von doppeltgenauen Gleitkommazahlen in eine komma-separierte Liste verwandeln. |
static java.lang.String |
doubleList(double[] x,
int i0)
Einen Array von doppeltgenauen Gleitkommazahlen in eine komma-separierte Liste verwandeln. |
static java.lang.String |
doubleList(double[] x,
int i0,
int i1)
Einen Array von doppeltgenauen Gleitkommazahlen in eine komma-separierte Liste verwandeln. |
static double |
fabs(double x)
Absolutbetrag einer Gleitkommazahl (Funktion ist nicht in java.lang.Math implementiert!). |
static double |
fmod(double x,
double a)
Reduktion einer Gleitkommazahl x auf das Intervall [0,a). |
static double |
fmod360(double x)
Reduktion einer Gleitkommazahl x auf das Intervall [0,360). |
static double |
fract(double x)
Abstand einer Gleitkommazahl von der nächstkleineren Ganzzahl |
double |
getHouse(double jd_ut,
double lon,
double lat,
double houseNumber,
java.lang.StringBuffer serr)
Implementierung der Interface-Methode zur Hausberechnung. |
double[] |
getPlanet(double jd_ut,
int planet,
java.lang.StringBuffer serr)
Implementierung der Interface-Methode zur Berechnung eines einzelnen Planeten. |
boolean |
getPlanetsAndHouses(double jd_ut,
double lon,
double lat,
double[] pl,
double[] h)
Implementierung der Methode ICalculator.getPlanetsAndHouses() |
static boolean |
getPlanetsAndHouses(java.lang.String urlstring,
double[] pl,
double[] h)
Planeten und Häuser durch Aufruf eines Berechnungs-Servlets im Backend starten. |
java.lang.String |
getServletURL()
Servlet-URL zurückgeben |
static double |
julianDate(int year,
int month,
int day,
double et)
Kalenderdatum in Julianisches Datum wandeln. |
static void |
main(java.lang.String[] argv)
Methode für Tests (wird nur bei der Entwicklung verwendet) |
static int |
parseDoubleList(java.lang.String in,
double[] out)
Aus einer komma-separierten Liste ein Array von doppeltgenauen Gleitkommazahlen ableiten. |
static boolean |
parseTimePlace(java.lang.String in,
double[] tp)
Aus einem Eingabestring Zeit und Ort ermitteln. |
static java.lang.String |
renderTimePlace(double[] tp)
Zeit und Ort in einen lesbaren String verwandeln. |
static java.lang.String |
renderTimePlace(double[] tp,
long format)
Zeit und Ort in einen lesbaren String verwandeln. |
static java.lang.String |
renderTimePlace(double jd,
double lon,
double lat)
Zeit und Ort in einen lesbaren String verwandeln. |
static java.lang.String |
renderTimePlace(double jd,
double lon,
double lat,
long format)
Zeit und Ort in einen lesbaren String verwandeln. |
java.lang.String |
renderTimePlace(java.lang.String jdS,
java.lang.String lonS,
java.lang.String latS)
wie renderTimePlace(double,double,double), jedoch mit
Strings als Importparametern. |
void |
setServletURL(java.lang.String iServletURL)
Servlet-URL, aufbewahren für Aufrufe der ICalculator.getPlanetsAndHouses()-Methode |
static byte |
sgn(double x)
Signumfunktion einer Gleitkommazahl (Funktion ist nicht in java.lang.Math implementiert!). |
static double |
sin(double x)
Wrapper für Sinus im Gradmass |
static void |
sort(long[] a)
Sortieren eines Arrays von langen Ganzzahlen. |
static void |
sort(long[] a,
int lo0,
int hi0)
Sortieren eines Array-Teils. |
static double |
tan(double x)
Wrapper für Tangens im Gradmass |
static double |
thisjd()
Julianisches Datum aus der aktuellen Systemzeit ermitteln. |
| Von Klasse java.lang.Object geerbte Methoden |
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Feld-Details |
public static final double DEFAULT_LAT
public static final double DEFAULT_LON
public static final java.lang.String digit
public static final long ECL
dms-Funktion: Ausgabe einer ekliptikale Länge.
Spezifikation für die Funktion dms().
Die gewünschten Werte müssen, mit einem logischen Oder
verknüpft, als Bitmaske für den Wert format der Methode
dms() übergeben werden.
public static final long GEO
dms-Funktion: Ausgabe als Winkel zwischen 0 und 360°. Spezifikation für die Funktion dms().
Die gewünschten Werte müssen, mit einem logischen Oder
verknüpft, als Bitmaske für den Wert format der Methode
dms() übergeben werden.
public static final long LAT
dms-Funktion: Ausgabe einer geographischen Breite.
Spezifikation für die Funktion dms().
Die gewünschten Werte müssen, mit einem logischen Oder
verknüpft, als Bitmaske für den Wert format der Methode
dms() übergeben werden.
public static final long LONG
dms-Funktion: Ausgabe einer geographischen Länge.
Spezifikation für die Funktion dms().
Die gewünschten Werte müssen, mit einem logischen Oder
verknüpft, als Bitmaske für den Wert format der Methode
dms() übergeben werden.
public static final long NO_ROUND
dms-Funktion: Keine Rundung.
Spezifikation für die Funktion dms().
Die gewünschten Werte müssen, mit einem logischen Oder
verknüpft, als Bitmaske für den Wert format der Methode
dms() übergeben werden.
public static final java.lang.String pknam
| Index | Kurzform | Planet |
|---|---|---|
| 0 | SO | Sonne |
| 2 | MO | Mond |
| 4 | ME | Merkur |
| 6 | VE | Venus |
| 8 | MA | Mars |
| 10 | JU | Jupiter |
| 12 | SA | Saturn |
| 14 | UR | Uranus |
| 16 | NE | Neptun |
| 18 | PL | Pluto |
public static final long SEC
dms-Funktion: Ausgabe ist sekundengenau gewünscht.
Spezifikation für die Funktion dms().
Die gewünschten Werte müssen, mit einem logischen Oder
verknüpft, als Bitmaske für den Wert format der Methode
dms() übergeben werden.
public static final java.lang.String sknam
| Index | Kurzform | Zeichen |
|---|---|---|
| 0 | AR | Widder (Aries) |
| 2 | TA | Stier (Taurus) |
| 4 | GE | Zwillinge (Gemini) |
| 6 | CN | Krebs (Cancer) |
| 8 | LE | Löwe (Leo) |
| 10 | VI | Jungfrau (Virgo) |
| 12 | LI | Waage (Libra) |
| 14 | SC | Skorpion (Scorpio) |
| 16 | SG | Schütze (Sagittarius) |
| 18 | CP | Steinbock (Capricornus) |
| 20 | AQ | Wassermann (Aquarius) |
| 22 | PS | Fische (Pisces) |
public static final long TIME
dms-Funktion: Zeitangabe (Sternzeit, Ortszeit o.ä.).
Spezifikation für die Funktion dms().
Die gewünschten Werte müssen, mit einem logischen Oder
verknüpft, als Bitmaske für den Wert format der Methode
dms() übergeben werden.
public static final double toDeg
public static final double toRad
| Konstruktor-Details |
public Calculator()
| Methoden-Details |
public static double acos(double x)
public static boolean analyzeString(java.io.BufferedReader in,
double[] h,
double[] pl)
in - BufferedReader, der den Input enthälth - Array für die Hauspositionen, mindestens double[13]pl - Array für die Planetenpositionen, mindestens double[10]
public static double arcdiff(double x,
double y)
x - Erster Argument in Grady - Zweites Argument in Grad
public static double arcdiffAbs(double x,
double y)
x - Erster Argument in Grady - Zweites Argument in Gradpublic static double asin(double x)
public static double atan(double x)
public static double atan2(double x,
double y)
public static int[] calendarDate(double jd)
Das Julianische Datum (fortlaufende Tageszahl) wird in ein "lesbares" Kalenderdatum konvertiert. Es wird ab dem 14.10.1582 der Gregorianische, vor diesem Datum der Julianische Kalender zugrundegelegt.
jd - Julianisches Datumpublic static double cos(double x)
public static java.lang.String date(double jd)
public static java.lang.String dms(double x)
Wird die Funktion dms() mit nur einem Parameter aufgerufen,
so wandelt sie diesen Parameterwert in eine Gradzahl
um, notiert im Grad/Minuten/Sekundensystem. Das heisst,
defaultmässig sind für die Konvertierung die Optionen
GEO und SEC aktiv.
x - Gleitkommazahl
public static java.lang.String dms(double x,
long format)
Mit dem zweiten Parameter der Funktion hat man Einfluss auf
die Formatierung. Er bestimmt, ob die übergebene
Dezimalzahl eine Gradzahl im Vollkreis ist,
eine ekliptikale Längenangabe, eine
geographische Länge, geographische
Breite oder eine Zeitangabe. Durch
Hinzuaddieren der Option SEC wird sekunden-
statt der defaultmässig minutengenauen Ausgabe angefordert,
durch Addieren von NO_ROUND wird das
Runden verhindert, das Ergebnis wird auf die gewünschte
Genauigkeit abgeschnitten.
x - Gleitkommazahlformat - Summe von einer oder mehreren Formatierungskonstantenpublic static java.lang.String doubleList(double[] x)
x - Der Array
public static java.lang.String doubleList(double[] x,
int i0)
x - Der Arrayi0 - Index des ersten Arrayelements, das in die Liste gesetzt werden soll
public static java.lang.String doubleList(double[] x,
int i0,
int i1)
x - Der Arrayi0 - Index des ersten Arrayelements, das in die Liste gesetzt werden solli1 - Index des letzten Arrayelements, das in die Liste gesetzt werden sollpublic static double fabs(double x)
public static double fmod(double x,
double a)
x - Eine doppeltgenaue Gleitkommazahla - Modulo-Wertpublic static double fmod360(double x)
x - Eine doppeltgenaue Gleitkommazahlpublic static double fract(double x)
public double getHouse(double jd_ut,
double lon,
double lat,
double houseNumber,
java.lang.StringBuffer serr)
getHouse in Interface ICalculatorAstroOL.ICalculatorjd_ut - julianisches Datum in Weltzeit (nicht Ephemeridenzeit)lon - geographische Länge des Ortes (für Hausberechnungen)lat - geographische (nicht geozentrische) Breite des Ortes (für Hausberechnungen)die - zu berechnende Häuserspitze. Das Interface schreibt nur vor, daß die
ganzzahligen Werte 1 bis 12 den Spitzen der Häser 1 bis 12 entsprechen. Die implementierenden
Klassen Calculator und LowPrecCalculator interpretieren Zwischenwerte als mundane Position.
public double[] getPlanet(double jd_ut,
int planet,
java.lang.StringBuffer serr)
getPlanet in Interface ICalculatorAstroOL.ICalculatorjd_ut - julianisches Datum in Weltzeit (nicht Ephemeridenzeit)planet - Nummer des Planeten. Es gilt die Reihenfolge SO, MO, ME, VE, MA, JU, SA, UR, NE und PL,
wobei SO die Nummer Null hat.serr - Fehler- oder Warnmeldung im Klartext.
Kann auch mehrere Meldungen, getrennt durch Zeilenvorschübe, enthalten.
public boolean getPlanetsAndHouses(double jd_ut,
double lon,
double lat,
double[] pl,
double[] h)
getPlanetsAndHouses in Interface ICalculatorAstroOL.ICalculatorjd_ut - julianisches Datum in Weltzeit (nicht Ephemeridenzeit)lon - geographische Länge des Ortes (für Hausberechnungen)lat - geographische (nicht geozentrische) Breite des Ortes (für Hausberechnungen)pl - die Referenz auf ein Array von doppeltgenauen Gleitkommazahlen
mit mindestens zehn Elementen; die ersten zehn Elemente werden mit den
geozentrischen ekliptikalen Planetenpositionen in der Reihenfolge SO, MO, ME, VE, MA, JU, SA, UR, NE und PL
gefüllt.h - die Referenz auf ein Array von doppeltgenauen Gleitkommazahlen
mit mindestens dreizehn Elementen. Das erste Element (mit Index 0) bleibt leer. Das Element h[i]
wird für i = 1 bis 12 mit dem Wert der i. Hausspitze gefüllt. Die Wahl oder gar Wählbarkeit
des Häsersystems ist im Interface nicht festgelegt und stellt somit ein Implementierungsdetail dar.
public static boolean getPlanetsAndHouses(java.lang.String urlstring,
double[] pl,
double[] h)
public java.lang.String getServletURL()
getServletURL in Interface ICalculator
public static double julianDate(int year,
int month,
int day,
double et)
Es wird ab dem 14.10.1582 der Gregorianische, vor diesem Datum der Julianische Kalender zugrundegelegt.
year - Kalenderjahrmonth - Kalendermonatday - Kalendertaget - Ephemeridenzeit oder auch Weltzeitpublic static void main(java.lang.String[] argv)
public static int parseDoubleList(java.lang.String in,
double[] out)
in - Eingabestring. Beispiel: "1.23e5,1.23,0.5,,"out - Ergebnis. Wegen der Wertübergabe muss der Array bereits vom
Aufrufer initialisiert worden sein. Es werden solange Werte in den
Ergebnis-Array übertragen, bis das letzte Element der Ergebnisliste
oder das letzte Element im Eingabestring erreicht ist, oder bis ein
Konvertierungsfehler beim Interpretieren eines String-Teils als
Gleitkommazahl auftritt.
public static boolean parseTimePlace(java.lang.String in,
double[] tp)
in - Eingabestring. Folgende Arten von Eingaben sind
beispielsweise möglich:
19.2.1964 22:25 7E16 52N20
19.2.1964 7h 7E16'12" 52N19'46
19.2.1964 7E16' 22h25m 52N19'46"
Es wäre bequem möglich, an dieser Stelle mit regulären Ausdrücken zu arbeiten. Da hierfür in Java jedoch eine separate Bibliothek benötigt wird und die Umwandlung auch auf dem Client erfolgen muss (Load klein halten!), wurde die Interpretation des Zeit/Ort-Strings hier ausprogrammiert.
Ausserdem gilt es, den von Microsoft hingeworfenen Java- Fehdehandschuh aufzunehmen und die besonders stumpfsinnige Herausforderung anzunehmen, dass die Funktion - wie dieses ganze Applet - unter Java 1.1.3 noch lauffähig sein muss, damit es auch mit dem Internet Explorer funktioniert. Dies schliesst auch so elementare Methoden wie beispielsweise StringBuffer.replace() aus.
tp - Ergebnis - ein Array von drei Gleitkommazahlen mit
folgenden Inhalten:
| 0 | Julianisches Datum |
| 1 | Ö;stliche Länge |
| 2 | Nördliche Breite |
public static java.lang.String renderTimePlace(double[] tp)
tp - Array von drei Gleitkommazahlen: tp[0] enthält
das Julianische Datum, tp[1] die Länge und tp[2] die Breite
public static java.lang.String renderTimePlace(double[] tp,
long format)
tp - Array von drei Gleitkommazahlen: tp[0] enthält
das Julianische Datum, tp[1] die Länge und tp[2] die Breiteformat - Lange Ganzzahl mit Formatierungsanweisungen für die
Sexagesimalzahlen, z.B. SEC für Sekundengenauigkeit
oder NO_ROUND zum Unterlassen des Rundens.
public static java.lang.String renderTimePlace(double jd,
double lon,
double lat)
jd - Julianisches Datumlon - Geographische Länge (östlich ist positiv)lat - Geographische Breite (nördlich ist positiv)
public static java.lang.String renderTimePlace(double jd,
double lon,
double lat,
long format)
jd - Julianisches Datumlon - Geographische Länge (östlich ist positiv)lat - Geographische Breite (nördlich ist positiv)format - Lange Ganzzahl mit Formatierungsanweisungen für die
Sexagesimalzahlen, z.B. SEC für Sekundengenauigkeit
oder NO_ROUND zum Unterlassen des Rundens.
public java.lang.String renderTimePlace(java.lang.String jdS,
java.lang.String lonS,
java.lang.String latS)
renderTimePlace(double,double,double), jedoch mit
Strings als Importparametern. Für den Aufruf mit Javascript.public void setServletURL(java.lang.String iServletURL)
setServletURL in Interface ICalculatorpublic static byte sgn(double x)
Die Signumfunktion hat drei mögliche Werte: 0,1 und -1. Sie liefert
x - Argument der Signumfunktion, eine doppeltgenaue Gleitkommazahlpublic static double sin(double x)
public static void sort(long[] a)
a - Array von langen Ganzzahlen
public static void sort(long[] a,
int lo0,
int hi0)
a - Array von langen Ganzzahlenlo0 - Untergrenze des zu sortierenden Bereichs von ahi0 - Obergrenze des zu sortierenden Bereichs von apublic static double tan(double x)
public static double thisjd()
|
Astrologische Berechnungen | ||||||
| VORIGE KLASSE NÄCHSTE KLASSE | MIT FRAMES OHNE FRAMES | ||||||
| ÜBERBLICK: INNERE KL. | FELD | CONSTR | METHOD | DETAIL: FELD | CONSTR | METHOD | ||||||