ch.beattl.gm3d
Class Matrix

java.lang.Object
  extended by ch.beattl.gm3d.Matrix

public class Matrix
extends Object

Eine Klasse zur Verwaltung von Matrizen im 3D-Raum.

Version:
2009.07.30
Author:
Beat Trachsler, Schweiz

Field Summary
 double m00
          erste Komponente in der ersten Zeile
 double m01
          zweite Komponente in der ersten Zeile
 double m02
          dritte Komponente in der ersten Zeile
 double m10
          erste Komponente in der zweiten Zeile
 double m11
          zweite Komponente in der zweiten Zeile
 double m12
          dritte Komponente in der zweiten Zeile
 double m20
          erste Komponente in der dritten Zeile
 double m21
          zweite Komponente in der dritten Zeile
 double m22
          dritte Komponente in der dritten Zeile
 
Constructor Summary
Matrix()
          Instanziert eine Matrix mit allen Komponenten 0.
Matrix(double m00, double m01, double m02, double m10, double m11, double m12, double m20, double m21, double m22)
          Instanziert eine Matrix mit spezifizierten neun Werten.
Matrix(Matrix m)
          Instanziert eine neue Matrix anhand der Matrix m.
 
Method Summary
 double determinant()
          Berechnet die Determinante.
 double getM00()
          Gibt die erste Komponente in der ersten Reihe aus.
 double getM01()
          Gibt die zweite Komponente in der ersten Reihe aus.
 double getM02()
          Gibt die dritte Komponente in der ersten Reihe aus.
 double getM10()
          Gibt die erste Komponente in der zweiten Reihe aus.
 double getM11()
          Gibt die zweite Komponente in der zweiten Reihe aus.
 double getM12()
          Gibt die dritte Komponente in der zweiten Reihe aus.
 double getM20()
          Gibt die erste Komponente in der dritten Reihe aus.
 double getM21()
          Gibt die zweite Komponente in der dritten Reihe aus.
 double getM22()
          Gibt die dritte Komponente in der dritten Reihe aus.
 void invert()
          Setzt die aktuelle Matrix auf ihre Inverse.
 void mul(double scalar)
          Multipliziert die aktuelle Matrix mit dem Skalar scalar und setzt die aktuelle Matrix auf das Resultat.
 void mul(Matrix m1)
          Setzt die aktuelle Matrix auf das Resultat der Matrixmultiplikation der aktuellen Matrix mit der Matrix m1.
 void mul(Matrix m1, Matrix m2)
          Setzt die aktuelle Matrix auf das Resultat der Matrixmultiplikation der Matrix m1 mit der Matrix m2.
 void rotX(double alpha)
          Setzt die aktuelle Matrix auf eine Drehmatrix um die x-Achse mit Winkel alpha im Gegenuhrzeigersinn.
 void rotY(double alpha)
          Setzt die aktuelle Matrix auf eine Drehmatrix um die y-Achse mit Winkel alpha im Gegenuhrzeigersinn.
 void rotZ(double alpha)
          Setzt die aktuelle Matrix auf eine Drehmatrix um die z-Achse mit Winkel alpha im Gegenuhrzeigersinn.
 void set(double scale)
          Setzt die aktuelle Matrix auf eine Skalierungsmatrix mit Faktor scale.
 void setIdentity()
          Setzt die aktuelle Matrix auf die Einheitsmatrix.
 void setM00(double m00)
          Setzt den Wert von m00 gemaess dem Parameter.
 void setM01(double m01)
          Setzt den Wert von m01 gemaess dem Parameter.
 void setM02(double m02)
          Setzt den Wert von m02 gemaess dem Parameter.
 void setM10(double m10)
          Setzt den Wert von m10 gemaess dem Parameter.
 void setM11(double m11)
          Setzt den Wert von m11 gemaess dem Parameter.
 void setM12(double m12)
          Setzt den Wert von m12 gemaess dem Parameter.
 void setM20(double m20)
          Setzt den Wert von m20 gemaess dem Parameter.
 void setM21(double m21)
          Setzt den Wert von m21 gemaess dem Parameter.
 void setM22(double m22)
          Setzt den Wert von m22 gemaess dem Parameter.
 void setZero()
          Setzt die aktuelle Matrix auf Null.
 void transform(Tuple t)
          Multipliziert das Tupel t mit der aktuellen Matrix und speichert das Resultat im Tupel t.
 void transform(Tuple t, Tuple result)
          Multipliziert das Tupel t mit der aktuellen Matrix und speichert das Resultat im Tupel result.
 void transpose()
          Setzt die aktuelle Matrix auf ihre Transponierte.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

m00

public double m00
erste Komponente in der ersten Zeile


m01

public double m01
zweite Komponente in der ersten Zeile


m02

public double m02
dritte Komponente in der ersten Zeile


m10

public double m10
erste Komponente in der zweiten Zeile


m11

public double m11
zweite Komponente in der zweiten Zeile


m12

public double m12
dritte Komponente in der zweiten Zeile


m20

public double m20
erste Komponente in der dritten Zeile


m21

public double m21
zweite Komponente in der dritten Zeile


m22

public double m22
dritte Komponente in der dritten Zeile

Constructor Detail

Matrix

public Matrix(double m00,
              double m01,
              double m02,
              double m10,
              double m11,
              double m12,
              double m20,
              double m21,
              double m22)
Instanziert eine Matrix mit spezifizierten neun Werten.

Parameters:
m00 - Komponente [0][0]
m01 - Komponente [0][1]
m02 - Komponente [0][2]
m10 - Komponente [1][0]
m11 - Komponente [1][1]
m12 - Komponente [1][2]
m20 - Komponente [2][0]
m21 - Komponente [2][1]
m22 - Komponente [2][2]

Matrix

public Matrix(Matrix m)
Instanziert eine neue Matrix anhand der Matrix m.

Parameters:
m - Matrix m

Matrix

public Matrix()
Instanziert eine Matrix mit allen Komponenten 0.

Method Detail

getM00

public double getM00()
Gibt die erste Komponente in der ersten Reihe aus.

Returns:
Komponente m00

setM00

public void setM00(double m00)
Setzt den Wert von m00 gemaess dem Parameter.

Parameters:
m00 - neuer m00-Wert

getM01

public double getM01()
Gibt die zweite Komponente in der ersten Reihe aus.

Returns:
Komponente m01

setM01

public void setM01(double m01)
Setzt den Wert von m01 gemaess dem Parameter.

Parameters:
m01 - neuer m01-Wert

getM02

public double getM02()
Gibt die dritte Komponente in der ersten Reihe aus.

Returns:
Komponente m02

setM02

public void setM02(double m02)
Setzt den Wert von m02 gemaess dem Parameter.

Parameters:
m02 - neuer m02-Wert

getM10

public double getM10()
Gibt die erste Komponente in der zweiten Reihe aus.

Returns:
Komponente m10

setM10

public void setM10(double m10)
Setzt den Wert von m10 gemaess dem Parameter.

Parameters:
m10 - neuer m10-Wert

getM11

public double getM11()
Gibt die zweite Komponente in der zweiten Reihe aus.

Returns:
Komponente m11

setM11

public void setM11(double m11)
Setzt den Wert von m11 gemaess dem Parameter.

Parameters:
m11 - neuer m11-Wert

getM12

public double getM12()
Gibt die dritte Komponente in der zweiten Reihe aus.

Returns:
Komponente m12

setM12

public void setM12(double m12)
Setzt den Wert von m12 gemaess dem Parameter.

Parameters:
m12 - neuer m12-Wert

getM20

public double getM20()
Gibt die erste Komponente in der dritten Reihe aus.

Returns:
Komponente m20

setM20

public void setM20(double m20)
Setzt den Wert von m20 gemaess dem Parameter.

Parameters:
m20 - neuer m20-Wert

getM21

public double getM21()
Gibt die zweite Komponente in der dritten Reihe aus.

Returns:
Komponente m21

setM21

public void setM21(double m21)
Setzt den Wert von m21 gemaess dem Parameter.

Parameters:
m21 - neuer m21-Wert

getM22

public double getM22()
Gibt die dritte Komponente in der dritten Reihe aus.

Returns:
Komponente m22

setM22

public void setM22(double m22)
Setzt den Wert von m22 gemaess dem Parameter.

Parameters:
m22 - neuer m22-Wert

setIdentity

public void setIdentity()
Setzt die aktuelle Matrix auf die Einheitsmatrix.


setZero

public void setZero()
Setzt die aktuelle Matrix auf Null.


transpose

public void transpose()
Setzt die aktuelle Matrix auf ihre Transponierte.


determinant

public double determinant()
Berechnet die Determinante.

Returns:
Determinante

invert

public void invert()
Setzt die aktuelle Matrix auf ihre Inverse.


transform

public void transform(Tuple t)
Multipliziert das Tupel t mit der aktuellen Matrix und speichert das Resultat im Tupel t.

Parameters:
t - Tupel t

transform

public void transform(Tuple t,
                      Tuple result)
Multipliziert das Tupel t mit der aktuellen Matrix und speichert das Resultat im Tupel result.

Parameters:
t - Tupel t
result - Tupel result

mul

public void mul(double scalar)
Multipliziert die aktuelle Matrix mit dem Skalar scalar und setzt die aktuelle Matrix auf das Resultat.

Parameters:
scalar - Skalar scalar

mul

public void mul(Matrix m1)
Setzt die aktuelle Matrix auf das Resultat der Matrixmultiplikation der aktuellen Matrix mit der Matrix m1.

Parameters:
m1 - Matrix m1

mul

public void mul(Matrix m1,
                Matrix m2)
Setzt die aktuelle Matrix auf das Resultat der Matrixmultiplikation der Matrix m1 mit der Matrix m2.

Parameters:
m1 - Matrix m1
m2 - Matrix m2

set

public void set(double scale)
Setzt die aktuelle Matrix auf eine Skalierungsmatrix mit Faktor scale.

Parameters:
scale - Skalierungsfaktor

rotX

public void rotX(double alpha)
Setzt die aktuelle Matrix auf eine Drehmatrix um die x-Achse mit Winkel alpha im Gegenuhrzeigersinn.

Parameters:
alpha - Drehwinkel (im Bogenmass)

rotY

public void rotY(double alpha)
Setzt die aktuelle Matrix auf eine Drehmatrix um die y-Achse mit Winkel alpha im Gegenuhrzeigersinn.

Parameters:
alpha - Drehwinkel (im Bogenmass)

rotZ

public void rotZ(double alpha)
Setzt die aktuelle Matrix auf eine Drehmatrix um die z-Achse mit Winkel alpha im Gegenuhrzeigersinn.

Parameters:
alpha - Drehwinkel (im Bogenmass)