|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectmfc.matrix.AbstractComplex2By2
mfc.matrix.HermitianComplex2By2
mfc.geometry.HermitianCircle
A class to represent oriented circles in 2-dimensional Moebius geometry.
An oriented circle is represented by a hermitian complex
2×2-matrix with non-positive determinant.
Matrices which differ by a positive factor represent the same oriented circle.
Matrices which differ by a negative factor represent the same circle with opposite orientation.
| Field Summary |
| Fields inherited from class mfc.matrix.AbstractComplex2By2 |
aIm, aRe, bIm, bRe, cIm, cRe, dIm, dRe, EPS, EPSILON, EPSSQR |
| Constructor Summary | |
HermitianCircle()
Create unit circle in plane (= equator in Rieman sphere). |
|
HermitianCircle(HermitianCircle c)
|
|
| Method Summary | |
void |
apply(Complex2By2 m)
For test purposes: Assign this with m-1 this m-1 *. |
void |
apply(Moebius m)
Assign this with m-1 this m-1 *. |
void |
assignEuclidean(ComplexProjective1 center,
double radius)
Assign by euclidean center and euclidean radius. |
void |
assignEuclidean(double m1,
double m2,
double r)
Assign by euclidean center and euclidean radius. |
void |
assignHyperbolic(Complex z,
double r)
Assign by hyperbolic center and hyperbolic radius. |
void |
assignHyperbolic(ComplexProjective1 z,
double r)
Assign by hyperbolic center and hyperbolic radius. |
void |
assignHyperbolic(double m1,
double m2,
double r)
Assign by hyperbolic center and hyperbolic radius. |
void |
assignLorentzVector(double x0,
double x1,
double x2,
double x3)
Assign by Lorentz vector. |
void |
assignSpherical(ComplexProjective1 center,
double radius)
Assign by spherical center and spherical radius. |
void |
assignThrough(ComplexProjective1 z1,
ComplexProjective1 z2,
ComplexProjective1 z3)
Assign by prescribing 3 points on the circle. |
boolean |
equals(HermitianCircle circ)
Test for equality. |
void |
euclideanCenter(Complex center)
Calculate the euclidean center in the complex plane. |
void |
euclideanCenter(ComplexProjective1 center)
Calculate the euclidean center in the complex plane. |
double |
euclideanRadius()
Return the euclidean radius. |
void |
setARe(double v)
Set the value of aRe. |
void |
setB(Complex b)
Set the value of the upper right element. |
void |
setC(Complex c)
Set the value of the lower left element. |
void |
setDRe(double v)
Set the value of dRe. |
void |
sphericalCenter(ComplexProjective1 center)
Calculate the spherical center in 1-dimensional complex projective space. |
void |
sphericalCenter(Real3 center)
Calculate the spherical center in real 3-space. |
double |
sphericalRadius()
Return the spherical radius. |
| Methods inherited from class mfc.matrix.HermitianComplex2By2 |
assign, assign, assign, assignAdjoinedWith, assignConjugateWith, getARe, getDRe, lorentzVectorX0, lorentzVectorX1, lorentzVectorX2, lorentzVectorX3, realDeterminant |
| Methods inherited from class java.lang.Object |
clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Constructor Detail |
public HermitianCircle()
public HermitianCircle(HermitianCircle c)
| Method Detail |
public void setARe(double v)
throws java.lang.IllegalArgumentException
setARe in class HermitianComplex2By2v - value to assign to aRe
java.lang.IllegalArgumentException - if determinant would become positive
public void setB(Complex b)
throws java.lang.IllegalArgumentException
setB in class HermitianComplex2By2b - a Complex
java.lang.IllegalArgumentException - if determinant would become positive
public void setC(Complex c)
throws java.lang.IllegalArgumentException
setC in class HermitianComplex2By2c - a Complex.
java.lang.IllegalArgumentException - if determinant would become positive
public void setDRe(double v)
throws java.lang.IllegalArgumentException
setDRe in class HermitianComplex2By2v - Value to assign to dRe.
java.lang.IllegalArgumentException - if determinant would become positive
public void assignThrough(ComplexProjective1 z1,
ComplexProjective1 z2,
ComplexProjective1 z3)
Assign by prescribing 3 points on the circle.
public void assignLorentzVector(double x0,
double x1,
double x2,
double x3)
throws java.lang.IllegalArgumentException
Assign by Lorentz vector.
The arguments must satisfy x02 -
x12 - x22 - x32 <=
0.0
assignLorentzVector in class HermitianComplex2By2java.lang.IllegalArgumentException - if arguments do not satisfy above
conditionpublic boolean equals(HermitianCircle circ)
circ - the circle to compare this with
true if this and circ
represent the same oriented circle, false
otherwise.
public void assignSpherical(ComplexProjective1 center,
double radius)
center - a ComplexProjective1: the spherical centerradius - a double: the spherical radiuspublic double sphericalRadius()
double between 0 and
π: the spherical radiuspublic void sphericalCenter(Real3 center)
center - a Real3 used to hand over the resultpublic void sphericalCenter(ComplexProjective1 center)
center - a ComplexProjective1 used to hand over the
result
public void assignEuclidean(ComplexProjective1 center,
double radius)
center - a ComplexProjective1: the Euclidean center
public void assignEuclidean(double m1,
double m2,
double r)
TODO: maybe one should rather implement this using assignEuclidean(ComplexProjective1, double)?
m1 - a double: the x coordinate of the euclidean centerm2 - a double: the y coordinate of the euclidean centerr - a double: the euclidean radiuspublic double euclideanRadius()
doublepublic void euclideanCenter(Complex center)
center - a Complex used to hand over the resultpublic void euclideanCenter(ComplexProjective1 center)
center - a ComplexProjective1 used to hand over the result
public void assignHyperbolic(double m1,
double m2,
double r)
m1 - a double: the x coordinate of the hyperbolic
center (in the Poincare unit disc model)m2 - a double: the y coordinate of the hyperbolic
center (in the Poincare unit disc model)r - a double: the hyperbolic radius
{@link - IllegalArgumentException} if m1 * m1 + m2 * m2 >= 1
public void assignHyperbolic(Complex z,
double r)
z - a Complex: the hyperbolic center (in the
Poincare unit disc model)r - a double: the hyperbolic radius
{@link - IllegalArgumentException} if |z| >= 1
public void assignHyperbolic(ComplexProjective1 z,
double r)
z - a ComplexProjective1: the hyperbolic center (in the
Poincare unit disc model)r - a double: the hyperbolic radius
{@link - IllegalArgumentException} if z does not
lie inside the unit circlepublic void apply(Moebius m)
this with m-1 this m-1 *.
m - an Moebius: the Moebius transform to applypublic void apply(Complex2By2 m)
this with m-1 this m-1 *.
m - an Complex2By2: the Moebius transform to apply
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||