Matrix4X4
Stellt eine 4x4 Matrix mit doppelt präzisen Komponenten dar.
Implementiert: IEquatable<Matrix4X4>
Konstruktoren
public Matrix4X4(Vector4 row0, Vector4 row1, Vector4 row2, Vector4 row3)
matrix4X4 = Matrix4X4(row0, row1, row2, row3)
Konstruiert eine neue Instanz.
- row0
- Obere Zeile der Matrix
- row1
- zweite Zeile der Matrix
- row2
- dritte Zeile der Matrix
- row3
- Untere Zeile der Matrix
public Matrix4X4(double m00, double m01, double m02, double m03, double m10, double m11, double m12, double m13, double m20, double m21, double m22, double m23, double m30, double m31, double m32, double m33)
matrix4X4 = Matrix4X4(m00, m01, m02, m03, m10, m11, m12, m13, m20, m21, m22, m23, m30, m31, m32, m33)
Konstruiert eine neue Instanz.
- m00
- Erster Punkt der ersten Zeile.
- m01
- Zweiter Punkt der ersten Zeile.
- m02
- Dritter Punkt der ersten Zeile.
- m03
- Vierter Punkt der ersten Zeile.
- m10
- Erster Punkt der zweiten Zeile.
- m11
- Zweiter Punkt der zweiten Zeile.
- m12
- Dritter Punkt der zweiten Zeile.
- m13
- Vierter Punkt der zweiten Reihe.
- m20
- Erster Punkt der dritten Zeile.
- m21
- Zweiter Punkt der dritten Zeile.
- m22
- Dritter Punkt der dritten Zeile.
- m23
- Erster Punkt der dritten Zeile.
- m30
- Vierter Punkt der vierten Reihe.
- m31
- Zweiter Punkt der vierten Reihe.
- m32
- Dritter Punkt der vierten Reihe.
- m33
- Vierter Punkt der vierten Reihe.
Eigenschaften
public double Determinant { get; }
value = matrix4X4.Determinant
Die Determinante dieser Matrix
public double M11 { get; set; }
value = matrix4X4.M11
matrix4X4.M11 = value
Bekommt oder setzt den Wert in Zeile 1, Spalte 1 dieser Instanz.
public double M12 { get; set; }
value = matrix4X4.M12
matrix4X4.M12 = value
Erhält oder setzt den Wert in Zeile 1, Spalte 2 dieser Instanz.
public double M13 { get; set; }
value = matrix4X4.M13
matrix4X4.M13 = value
Bekommt oder setzt den Wert in Zeile 1, Spalte 3 dieser Instanz.
public double M14 { get; set; }
value = matrix4X4.M14
matrix4X4.M14 = value
Bekommt oder setzt den Wert in Zeile 1, Spalte 4 dieser Instanz.
public double M21 { get; set; }
value = matrix4X4.M21
matrix4X4.M21 = value
Bekommt oder setzt den Wert in Zeile 2, Spalte 1 dieser Instanz.
public double M22 { get; set; }
value = matrix4X4.M22
matrix4X4.M22 = value
Bekommt oder setzt den Wert in Zeile 2, Spalte 2 dieser Instanz.
public double M23 { get; set; }
value = matrix4X4.M23
matrix4X4.M23 = value
Bekommt oder setzt den Wert in Zeile 2, Spalte 3 dieser Instanz.
public double M24 { get; set; }
value = matrix4X4.M24
matrix4X4.M24 = value
Bekommt oder setzt den Wert in Zeile 2, Spalte 4 dieser Instanz.
public double M31 { get; set; }
value = matrix4X4.M31
matrix4X4.M31 = value
Bekommt oder setzt den Wert in Zeile 3, Spalte 1 dieser Instanz.
public double M32 { get; set; }
value = matrix4X4.M32
matrix4X4.M32 = value
Bekommt oder setzt den Wert in Zeile 3, Spalte 2 dieser Instanz.
public double M33 { get; set; }
value = matrix4X4.M33
matrix4X4.M33 = value
Bekommt oder setzt den Wert in Zeile 3, Spalte 3 dieser Instanz.
public double M34 { get; set; }
value = matrix4X4.M34
matrix4X4.M34 = value
Bekommt oder setzt den Wert in Zeile 3, Spalte 4 dieser Instanz.
public double M41 { get; set; }
value = matrix4X4.M41
matrix4X4.M41 = value
Bekommt oder setzt den Wert in Zeile 4, Spalte 1 dieser Instanz.
public double M42 { get; set; }
value = matrix4X4.M42
matrix4X4.M42 = value
Bekommt oder setzt den Wert in Zeile 4, Spalte 2 dieser Instanz.
public double M43 { get; set; }
value = matrix4X4.M43
matrix4X4.M43 = value
Bekommt oder setzt den Wert in Zeile 4, Spalte 3 dieser Instanz.
public double M44 { get; set; }
value = matrix4X4.M44
matrix4X4.M44 = value
Bekommt oder setzt den Wert in Zeile 4, Spalte 4 dieser Instanz.
public Vector3 Position { get; }
value = matrix4X4.Position
Holen Sie sich nur die Position aus der Matrix.
Methoden
public static void CreateFromAxisAngle(Vector3 axis, double angle, Matrix4X4 result)
Matrix4X4.CreateFromAxisAngle(axis, angle, result)
Erstellen Sie eine Rotationsmatrix aus der angegebenen Achse / Winkeldrehung.
- axis
- Die Achse, um sich zu drehen.
- angle
- Winkel in Radiant, um sich gegen den Uhrzeigersinn zu drehen (in Richtung der gegebenen Achse schauend).
- result
- Eine Matrixinstanz.
public static Matrix4X4 CreateFromAxisAngle(Vector3 axis, double angle)
result = Matrix4X4.CreateFromAxisAngle(axis, angle)
Erstellen Sie eine Rotationsmatrix aus der angegebenen Achse / Winkeldrehung.
- axis
- Die Achse, um sich zu drehen.
- angle
- Winkel in Radiant, um sich gegen den Uhrzeigersinn zu drehen (in Richtung der gegebenen Achse schauend).
Rückgabe: Eine Matrixinstanz.
public static void CreateOrthographic(double width, double height, double zNear, double zFar, Matrix4X4 result)
Matrix4X4.CreateOrthographic(width, height, zNear, zFar, result)
Erstellt eine orthografische Projektionsmatrix.
- width
- Die Breite des Projektionsvolumens.
- height
- Die Höhe des Projektionsvolumens.
- zNear
- Der nahe Rand des Projektionsvolumens.
- zFar
- Der äußerste Rand des Projektionsvolumens.
- result
- Die resultierende Matrix4d-Instanz.
public static Matrix4X4 CreateOrthographic(double width, double height, double zNear, double zFar)
result = Matrix4X4.CreateOrthographic(width, height, zNear, zFar)
Erstellt eine orthografische Projektionsmatrix.
- width
- Die Breite des Projektionsvolumens.
- height
- Die Höhe des Projektionsvolumens.
- zNear
- Der nahe Rand des Projektionsvolumens.
- zFar
- Der äußerste Rand des Projektionsvolumens.
public static Matrix4X4 CreateOrthographicOffCenter(double left, double right, double bottom, double top, double zNear, double zFar)
result = Matrix4X4.CreateOrthographicOffCenter(left, right, bottom, top, zNear, zFar)
Erstellt eine orthografische Projektionsmatrix.
- left
- Der linke Rand des Projektionsvolumens.
- right
- Der rechte Rand des Projektionsvolumens.
- bottom
- Die untere Kante des Projektionsvolumens.
- top
- Die obere Kante des Projektionsvolumens.
- zNear
- Der nahe Rand des Projektionsvolumens.
- zFar
- Der äußerste Rand des Projektionsvolumens.
Rückgabe: Die resultierende Matrix4d-Instanz.
public static void CreateOrthographicOffCenter(double left, double right, double bottom, double top, double zNear, double zFar, Matrix4X4 result)
Matrix4X4.CreateOrthographicOffCenter(left, right, bottom, top, zNear, zFar, result)
Erstellt eine orthografische Projektionsmatrix.
- left
- Der linke Rand des Projektionsvolumens.
- right
- Der rechte Rand des Projektionsvolumens.
- bottom
- Die untere Kante des Projektionsvolumens.
- top
- Die obere Kante des Projektionsvolumens.
- zNear
- Der nahe Rand des Projektionsvolumens.
- zFar
- Der äußerste Rand des Projektionsvolumens.
- result
- Die resultierende Matrix4d-Instanz.
public static void CreatePerspectiveFieldOfView(double fovYRadians, double aspectWidthOverHeight, double zNear, double zFar, Matrix4X4 result)
Matrix4X4.CreatePerspectiveFieldOfView(fovYRadians, aspectWidthOverHeight, zNear, zFar, result)
Erstellt eine perspektivische Projektionsmatrix.
- fovYRadians
- Winkel des Sichtfeldes in y-Richtung (in Radiant)
- aspectWidthOverHeight
- Aspektverhältnis der Ansicht (Breite / Höhe)
- zNear
- Abstand zur Nahclipebene
- zFar
- Abstand zur äußersten Clipebene
- result
- Eine Projektionsmatrix, die den Kameraraum in den Rasterraum verwandelt
public static Matrix4X4 CreatePerspectiveFieldOfView(double fovYRadians, double aspectWidthOverHeight, double zNear, double zFar)
result = Matrix4X4.CreatePerspectiveFieldOfView(fovYRadians, aspectWidthOverHeight, zNear, zFar)
Erstellt eine perspektivische Projektionsmatrix.
- fovYRadians
- Winkel des Sichtfeldes in y-Richtung (in Radiant)
- aspectWidthOverHeight
- Aspektverhältnis der Ansicht (Breite / Höhe)
- zNear
- Abstand zur Nahclipebene
- zFar
- Abstand zur äußersten Clipebene
Rückgabe: Eine Projektionsmatrix, die den Kameraraum in den Rasterraum verwandelt
public static void CreatePerspectiveOffCenter(double left, double right, double bottom, double top, double zNear, double zFar, Matrix4X4 result)
Matrix4X4.CreatePerspectiveOffCenter(left, right, bottom, top, zNear, zFar, result)
Erstellt eine perspektivische Projektionsmatrix.
- left
- linker Rand des Sichtstumpfs
- right
- Rechter Rand der Ansicht frustum
- bottom
- Untere Kante des Sichtstumpfs
- top
- Obere Kante des Sichtstumpfs
- zNear
- Abstand zur Nahclipebene
- zFar
- Abstand zur äußersten Clipebene
- result
- Eine Projektionsmatrix, die den Kameraraum in den Rasterraum verwandelt
public static Matrix4X4 CreatePerspectiveOffCenter(double left, double right, double bottom, double top, double zNear, double zFar)
result = Matrix4X4.CreatePerspectiveOffCenter(left, right, bottom, top, zNear, zFar)
Erstellt eine perspektivische Projektionsmatrix.
- left
- linker Rand des Sichtstumpfs
- right
- Rechter Rand der Ansicht frustum
- bottom
- Untere Kante des Sichtstumpfs
- top
- Obere Kante des Sichtstumpfs
- zNear
- Abstand zur Nahclipebene
- zFar
- Abstand zur äußersten Clipebene
Rückgabe: Eine Projektionsmatrix, die den Kameraraum in den Rasterraum verwandelt
public static Matrix4X4 CreateRotation(Vector3 axis, double angle)
result = Matrix4X4.CreateRotation(axis, angle)
Bauen Sie eine Rotationsmatrix auf, um sich um die angegebene Achse zu drehen
- axis
- die Achse, um sich zu drehen
- angle
- Winkel in Radiant, um sich gegen den Uhrzeigersinn zu drehen (in Richtung der gegebenen Achse schauend)
Rückgabe: Eine Rotationsmatrix
public static Matrix4X4 CreateRotation(Quaternion q)
result = Matrix4X4.CreateRotation(q)
Bauen Sie eine Rotationsmatrix aus einem Quaternion
- q
- Quaternion
Rückgabe: Eine Rotationsmatrix
public static void CreateRotationX(double angle, Matrix4X4 result)
Matrix4X4.CreateRotationX(angle, result)
Erstellt eine Rotationsmatrix für eine Rotation um die x-Achse.
- angle
- Der Winkel gegen den Uhrzeigersinn in Radianten.
- result
- Die resultierende Matrix4-Instanz.
public static Matrix4X4 CreateRotationX(double angle)
result = Matrix4X4.CreateRotationX(angle)
Erstellt eine Rotationsmatrix für eine Rotation um die x-Achse.
- angle
- Der Winkel gegen den Uhrzeigersinn in Radianten.
Rückgabe: Die resultierende Matrix4-Instanz.
public static Matrix4X4 CreateRotationY(double angle)
result = Matrix4X4.CreateRotationY(angle)
Erstellt eine Rotationsmatrix für eine Rotation um die y-Achse.
- angle
- Der Winkel gegen den Uhrzeigersinn in Radianten.
Rückgabe: Die resultierende Matrix4-Instanz.
public static void CreateRotationY(double angle, Matrix4X4 result)
Matrix4X4.CreateRotationY(angle, result)
Erstellt eine Rotationsmatrix für eine Rotation um die y-Achse.
- angle
- Der Winkel gegen den Uhrzeigersinn in Radianten.
- result
- Die resultierende Matrix4-Instanz.
public static Matrix4X4 CreateRotationZ(double angle)
result = Matrix4X4.CreateRotationZ(angle)
Erstellt eine Rotationsmatrix für eine Rotation um die z-Achse.
- angle
- Der Winkel gegen den Uhrzeigersinn in Radianten.
Rückgabe: Die resultierende Matrix4-Instanz.
public static void CreateRotationZ(double angle, Matrix4X4 result)
Matrix4X4.CreateRotationZ(angle, result)
Erstellt eine Rotationsmatrix für eine Rotation um die z-Achse.
- angle
- Der Winkel gegen den Uhrzeigersinn in Radianten.
- result
- Die resultierende Matrix4-Instanz.
public static Matrix4X4 CreateScale(double x, double y, double z)
result = Matrix4X4.CreateScale(x, y, z)
Erstellen einer Skalierungsmatrix
- x
- Skalierungsfaktor für x-Achse
- y
- Skalierungsfaktor für die y-Achse
- z
- Skalierungsfaktor für z-Achse
Rückgabe: Skalierungsmatrix
public static Matrix4X4 CreateScale(Vector3 scale)
result = Matrix4X4.CreateScale(scale)
Erstellen einer Skalierungsmatrix
- scale
- Skalierungsfaktoren für x-, y- und z-Achsen
Rückgabe: Skalierungsmatrix
public static Matrix4X4 CreateScale(double scale)
result = Matrix4X4.CreateScale(scale)
Erstellen einer Skalierungsmatrix
- scale
- Einzelfaktor für x-, y- und z-Achsen
Rückgabe: Skalierungsmatrix
public static void CreateTranslation(double x, double y, double z, Matrix4X4 result)
Matrix4X4.CreateTranslation(x, y, z, result)
Erstellt eine Übersetzungsmatrix.
- x
- X Übersetzung.
- y
- Y Übersetzung.
- z
- Z Übersetzung.
- result
- Die resultierende Matrix4d-Instanz.
public static Matrix4X4 CreateTranslation(double x, double y, double z)
result = Matrix4X4.CreateTranslation(x, y, z)
Erstellt eine Übersetzungsmatrix.
- x
- X Übersetzung.
- y
- Y Übersetzung.
- z
- Z Übersetzung.
Rückgabe: Die resultierende Matrix4d-Instanz.
public static Matrix4X4 CreateTranslation(Vector3 vector)
result = Matrix4X4.CreateTranslation(vector)
Erstellt eine Übersetzungsmatrix.
- vector
- Der Translationsvektor.
Rückgabe: Die resultierende Matrix4d-Instanz.
public static void CreateTranslation(Vector3 vector, Matrix4X4 result)
Matrix4X4.CreateTranslation(vector, result)
Erstellt eine Übersetzungsmatrix.
- vector
- Der Translationsvektor.
- result
- Die resultierende Matrix4d-Instanz.
public override bool Equals(object obj)
result = matrix4X4.Equals(obj)
Gibt an, ob diese Instanz und ein angegebenes Objekt gleich sind.
- obj
- Das Objekt zum Vergleichen.
Rückgabe: Wahr, wenn die Instanzen gleich sind; falsch sonst.
public bool Equals(Matrix4X4 other)
result = matrix4X4.Equals(other)
Gibt an, ob die aktuelle Matrix einer anderen Matrix entspricht.
- other
- Eine Matrix zum Vergleichen mit dieser Matrix.
Rückgabe: true, wenn die aktuelle Matrix gleich dem Matrixparameter ist; andernfalls false.
public static Matrix4X4 Frustum(double left, double right, double bottom, double top, double near, double far)
result = Matrix4X4.Frustum(left, right, bottom, top, near, far)
Erstellen einer Projektionsmatrix
- left
- linker Rand des Sichtstumpfs
- right
- Rechter Rand der Ansicht frustum
- bottom
- Untere Kante des Sichtstumpfs
- top
- Obere Kante des Sichtstumpfs
- near
- Abstand zur Nahclipebene
- far
- Abstand zur äußersten Clipebene
Rückgabe: Eine Projektionsmatrix, die den Kameraraum in den Rasterraum verwandelt
public override int GetHashCode()
result = matrix4X4.GetHashCode()
Gibt den Hashcode für diese Instanz zurück.
Rückgabe: Ein System.Int32, der den eindeutigen Hashcode für diese Instanz enthält.
public static Matrix4X4 Invert(Matrix4X4 mat)
result = Matrix4X4.Invert(mat)
Berechnen Sie die Inverse der gegebenen Matrix
- mat
- Die Matrix zum Invertieren
Rückgabe: Die Inverse der gegebenen Matrix, wenn sie eine hat, oder die Eingabe, wenn sie singulär ist
public static Matrix4X4 LookAt(double eyeX, double eyeY, double eyeZ, double targetX, double targetY, double targetZ, double upX, double upY, double upZ)
result = Matrix4X4.LookAt(eyeX, eyeY, eyeZ, targetX, targetY, targetZ, upX, upY, upZ)
Bauen Sie eine Weltraum-Kamera-Raum-Matrix
- eyeX
- Position des Auges (Kamera) im Weltraum
- eyeY
- Position des Auges (Kamera) im Weltraum
- eyeZ
- Position des Auges (Kamera) im Weltraum
- targetX
- Zielposition im Weltraum
- targetY
- Zielposition im Weltraum
- targetZ
- Zielposition im Weltraum
- upX
- Up Vektor im Weltraum (sollte nicht parallel zur Kamerarichtung sein, das ist Ziel - Auge)
- upY
- Up Vektor im Weltraum (sollte nicht parallel zur Kamerarichtung sein, das ist Ziel - Auge)
- upZ
- Up Vektor im Weltraum (sollte nicht parallel zur Kamerarichtung sein, das ist Ziel - Auge)
Rückgabe: Eine Matrix4, die den Weltraum in den Kameraraum verwandelt
public static Matrix4X4 LookAt(Vector3 eye, Vector3 target, Vector3 up)
result = Matrix4X4.LookAt(eye, target, up)
Bauen Sie eine Weltraum-Kamera-Raum-Matrix
- eye
- Position des Auges (Kamera) im Weltraum
- target
- Zielposition im Weltraum
- up
- Up Vektor im Weltraum (sollte nicht parallel zur Kamerarichtung sein, das ist Ziel - Auge)
Rückgabe: Eine Matrix, die den Weltraum in den Kameraraum verwandelt
public static Matrix4X4 Mult(Matrix4X4 left, Matrix4X4 right)
result = Matrix4X4.Mult(left, right)
Multipliziert zwei Instanzen.
- left
- Der linke Operand der Multiplikation.
- right
- Der rechte Operand der Multiplikation.
Rückgabe: Eine neue Instanz, die das Ergebnis der Multiplikation ist
public static void Mult(Matrix4X4 left, Matrix4X4 right, Matrix4X4 result)
Matrix4X4.Mult(left, right, result)
Multipliziert zwei Instanzen.
- left
- Der linke Operand der Multiplikation.
- right
- Der rechte Operand der Multiplikation.
- result
- Eine neue Instanz, die das Ergebnis der Multiplikation ist
public static bool op_Equality(Matrix4X4 left, Matrix4X4 right)
result = Matrix4X4.op_Equality(left, right)
Vergleicht zwei Beispiele für Gleichheit.
- left
- Die erste Instanz.
- right
- Die zweite Instanz.
Rückgabe: Wahrlich, wenn links gleich rechts ist; falsch anders.
public static bool op_Inequality(Matrix4X4 left, Matrix4X4 right)
result = Matrix4X4.op_Inequality(left, right)
Vergleicht zwei Beispiele für Ungleichheit.
- left
- Die erste Instanz.
- right
- Die zweite Instanz.
Rückgabe: Wahr, wenn links nicht gleich rechts ist; falsch sonst.
public static Matrix4X4 op_Multiply(Matrix4X4 left, Matrix4X4 right)
result = Matrix4X4.op_Multiply(left, right)
Matrixmultiplikation
- left
- linker Operand
- right
- rechter Operand
Rückgabe: Eine neue Matrix44, die das Ergebnis der Multiplikation enthält
public static Matrix4X4 Perspective(double fovy, double aspect, double near, double far)
result = Matrix4X4.Perspective(fovy, aspect, near, far)
Erstellen einer Projektionsmatrix
- fovy
- Winkel des Sichtfeldes in y-Richtung (in Radiant)
- aspect
- Aspektverhältnis der Ansicht (Breite / Höhe)
- near
- Abstand zur Nahclipebene
- far
- Abstand zur äußersten Clipebene
Rückgabe: Eine Projektionsmatrix, die den Kameraraum in den Rasterraum verwandelt
public override string ToString()
result = matrix4X4.ToString()
Gibt ein System.String zurück, das die aktuelle Matrix44 darstellt.
public void Transpose()
matrix4X4.Transpose()
Konvertiert diese Instanz in ihre Transposition.
public static Matrix4X4 Transpose(Matrix4X4 mat)
result = Matrix4X4.Transpose(mat)
Berechnen Sie die Transpose der gegebenen Matrix
- mat
- Die Matrix zu transponieren
Rückgabe: Die Transposition der gegebenen Matrix
public static void Transpose(Matrix4X4 mat, Matrix4X4 result)
Matrix4X4.Transpose(mat, result)
Berechnen Sie die Transpose der gegebenen Matrix
- mat
- Die Matrix zu transponieren
- result
- Das Ergebnis der Berechnung