Class Sphere
public final class Sphere
extends java.lang.Object
Eine Sphäre wird lediglich durch ihren Radius definiert. Sie ist im Gegensatz zu Matrix, Vektor und komplexer Zahl ein eher starres Objekt. Mit ihr kann nicht viel "gerechnet" werden, jedoch stellt die Klasse Sphere eine kleine Bibliothek sphärischer Operationen zu Verfügung, die den Umgang mit Matrizen, Vektoren und komplexen Zahlen sehr erleichtert.
-
Field Summary
-
Constructor Summary
Constructors Constructor Description Sphere(double r)
Erzeugt ein Sphäre mit angegebenem Radius. -
Method Summary
Modifier and Type Method Description Matrix
base(Vector v)
Erzeugt aus einem gegebenen Vektor eine Orthonormalbasis.Matrix
base(Vector v, double alpha)
Erzeugt aus einem gegebenen Vektor und einem Drehwinkel eine Orthonormalbasis.double
diff(Vector a, Vector b)
Berechnet den Abstand zweier Vektoren auf der Sphäre.boolean
equals(java.lang.Object S)
Vergleicht mit einer Sphärestatic Vector
euler(Matrix M)
Berechnet den Euler-Vektor zu einer Matrix.static Matrix
euler(Vector v)
Berechnet die Matrix zu einem Euler-Vektor.int
hashCode()
Berechnet den Hash-Code.java.lang.String
toString()
String-Repräsentation.Vector
warp(Complex c)
Krümmt eine Ebenen-Position auf die Sphäre.Matrix
warp(Complex c, double alpha)
Krümmt eine orientierte Ebenen-Position auf die Sphäre.Vector
warp(Matrix M)
Krümmt eine orientierte Sphären-Position auf die Ebene.Complex
warp(Vector v)
Krümmt eine Sphären-Position auf die Ebene.
-
Field Details
-
Constructor Details
-
Sphere
public Sphere(double r)Erzeugt ein Sphäre mit angegebenem Radius.- Parameters:
r
- Radius
-
-
Method Details
-
hashCode
public int hashCode()Berechnet den Hash-Code.- Overrides:
hashCode
in classjava.lang.Object
- Returns:
- den Hash-Code
-
toString
public java.lang.String toString()String-Repräsentation.- Overrides:
toString
in classjava.lang.Object
- Returns:
- den String
-
equals
public boolean equals(java.lang.Object S)Vergleicht mit einer Sphäre- Overrides:
equals
in classjava.lang.Object
- Parameters:
S
- Sphäre- Returns:
- die Gleichheit
-
diff
Berechnet den Abstand zweier Vektoren auf der Sphäre.Ist R der Sphären-Radius, und sind a, b != 0 die beiden Vektoren, so berechnet diese Funktion also:
R * acos(< a, b > / |a||b|)
- Parameters:
a
- Vektorb
- Vektor- Returns:
- den Abstand
-
base
Erzeugt aus einem gegebenen Vektor eine Orthonormalbasis.Ist v != 0 der gegebene Vektor und (a,b,c) die Orthonormalbasis, so gilt:
- c = v / |v|
- b = z x c [ z = (0,0,1) ]
- a = b x c
- Parameters:
v
- Vektor- Returns:
- die Basis
-
base
Erzeugt aus einem gegebenen Vektor und einem Drehwinkel eine Orthonormalbasis.Die Orthonormalbasis (a,b,c) wird zuerst aus dem gegebenen Vektor erzeugt und anschließend für den gegebenen Drehwinkel um ihre c-Achse gedreht.
- Parameters:
v
- Vektoralpha
- Winkel- Returns:
- die Basis
-
warp
Krümmt eine Ebenen-Position auf die Sphäre.- Parameters:
c
- komplexe Zahl- Returns:
- den Sphären-Vektor
-
warp
Krümmt eine orientierte Ebenen-Position auf die Sphäre.Die Blickwinkel der Ebene sind so parametrisiert, dass Winkel vom Wert 0 den Blick strahlenförmig entlang der Verbindungs-Geraden von Ursprung durch Position nach außen richten.
- Parameters:
c
- komplexe Zahlalpha
- Blickwinkel- Returns:
- die Sphären-Matrix
-
warp
Krümmt eine Sphären-Position auf die Ebene.- Parameters:
v
- Sphären-Vektor- Returns:
- die komplexe Zahl
-
warp
Krümmt eine orientierte Sphären-Position auf die Ebene.Die Blickwinkel der Ebene sind so parametrisiert, dass Winkel vom Wert 0 den Blick strahlenförmig entlang der Verbindungs-Geraden von Ursprung durch Position nach außen richten.
Die beiden Rückgabewerte Position und Blickrichtung werden aus praktischen Gründen in ein Vector-Objekt gepackt und sollten etwa mit folgendem Programm-Code sofort wieder zerlegt werden:
Vector v = Sphere.warp(M); // "(c,a) = Sphere.warp(M);" Complex c = new Complex(cf.x,v.y); // c = Position double a = v.z; // a = Blickrichtung
- Parameters:
M
- Sphären-Matrix- Returns:
- die komplexe Zahl und den Blickinkel als Vector-Objekt
-
euler
Berechnet die Matrix zu einem Euler-Vektor.- Parameters:
v
- Euler-Vektor- Returns:
- die Matrix
-
euler
Berechnet den Euler-Vektor zu einer Matrix.- Parameters:
M
- Matrix- Returns:
- den Euler-Vektor
-