Matrix4X4

StockSharp.Xaml.Charting.Rendering.HighQualityRasterizer.Agg.VectorMath

Stellt eine 4x4 Matrix mit doppelt präzisen Komponenten dar.

Implementiert: IEquatable<Matrix4X4>

Konstruktoren

Matrix4X4
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
Matrix4X4
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

Column0
public Vector4 Column0 { get; }
value = matrix4X4.Column0

Die erste Spalte dieser Matrix

Column1
public Vector4 Column1 { get; }
value = matrix4X4.Column1

Die zweite Spalte dieser Matrix

Column2
public Vector4 Column2 { get; }
value = matrix4X4.Column2

Die dritte Spalte dieser Matrix

Column3
public Vector4 Column3 { get; }
value = matrix4X4.Column3

Die vierte Spalte dieser Matrix

Determinant
public double Determinant { get; }
value = matrix4X4.Determinant

Die Determinante dieser Matrix

M11
public double M11 { get; set; }
value = matrix4X4.M11
matrix4X4.M11 = value

Bekommt oder setzt den Wert in Zeile 1, Spalte 1 dieser Instanz.

M12
public double M12 { get; set; }
value = matrix4X4.M12
matrix4X4.M12 = value

Erhält oder setzt den Wert in Zeile 1, Spalte 2 dieser Instanz.

M13
public double M13 { get; set; }
value = matrix4X4.M13
matrix4X4.M13 = value

Bekommt oder setzt den Wert in Zeile 1, Spalte 3 dieser Instanz.

M14
public double M14 { get; set; }
value = matrix4X4.M14
matrix4X4.M14 = value

Bekommt oder setzt den Wert in Zeile 1, Spalte 4 dieser Instanz.

M21
public double M21 { get; set; }
value = matrix4X4.M21
matrix4X4.M21 = value

Bekommt oder setzt den Wert in Zeile 2, Spalte 1 dieser Instanz.

M22
public double M22 { get; set; }
value = matrix4X4.M22
matrix4X4.M22 = value

Bekommt oder setzt den Wert in Zeile 2, Spalte 2 dieser Instanz.

M23
public double M23 { get; set; }
value = matrix4X4.M23
matrix4X4.M23 = value

Bekommt oder setzt den Wert in Zeile 2, Spalte 3 dieser Instanz.

M24
public double M24 { get; set; }
value = matrix4X4.M24
matrix4X4.M24 = value

Bekommt oder setzt den Wert in Zeile 2, Spalte 4 dieser Instanz.

M31
public double M31 { get; set; }
value = matrix4X4.M31
matrix4X4.M31 = value

Bekommt oder setzt den Wert in Zeile 3, Spalte 1 dieser Instanz.

M32
public double M32 { get; set; }
value = matrix4X4.M32
matrix4X4.M32 = value

Bekommt oder setzt den Wert in Zeile 3, Spalte 2 dieser Instanz.

M33
public double M33 { get; set; }
value = matrix4X4.M33
matrix4X4.M33 = value

Bekommt oder setzt den Wert in Zeile 3, Spalte 3 dieser Instanz.

M34
public double M34 { get; set; }
value = matrix4X4.M34
matrix4X4.M34 = value

Bekommt oder setzt den Wert in Zeile 3, Spalte 4 dieser Instanz.

M41
public double M41 { get; set; }
value = matrix4X4.M41
matrix4X4.M41 = value

Bekommt oder setzt den Wert in Zeile 4, Spalte 1 dieser Instanz.

M42
public double M42 { get; set; }
value = matrix4X4.M42
matrix4X4.M42 = value

Bekommt oder setzt den Wert in Zeile 4, Spalte 2 dieser Instanz.

M43
public double M43 { get; set; }
value = matrix4X4.M43
matrix4X4.M43 = value

Bekommt oder setzt den Wert in Zeile 4, Spalte 3 dieser Instanz.

M44
public double M44 { get; set; }
value = matrix4X4.M44
matrix4X4.M44 = value

Bekommt oder setzt den Wert in Zeile 4, Spalte 4 dieser Instanz.

Position
public Vector3 Position { get; }
value = matrix4X4.Position

Holen Sie sich nur die Position aus der Matrix.

Methoden

CreateFromAxisAngle
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.
CreateFromAxisAngle
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.

CreateOrthographic
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.
CreateOrthographic
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.
CreateOrthographicOffCenter
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.

CreateOrthographicOffCenter
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.
CreatePerspectiveFieldOfView
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
CreatePerspectiveFieldOfView
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

CreatePerspectiveOffCenter
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
CreatePerspectiveOffCenter
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

CreateRotation
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

CreateRotation
public static Matrix4X4 CreateRotation(Quaternion q)
result = Matrix4X4.CreateRotation(q)

Bauen Sie eine Rotationsmatrix aus einem Quaternion

q
Quaternion

Rückgabe: Eine Rotationsmatrix

CreateRotationX
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.
CreateRotationX
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.

CreateRotationY
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.

CreateRotationY
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.
CreateRotationZ
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.

CreateRotationZ
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.
CreateScale
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

CreateScale
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

CreateScale
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

CreateTranslation
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.
CreateTranslation
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.

CreateTranslation
public static Matrix4X4 CreateTranslation(Vector3 vector)
result = Matrix4X4.CreateTranslation(vector)

Erstellt eine Übersetzungsmatrix.

vector
Der Translationsvektor.

Rückgabe: Die resultierende Matrix4d-Instanz.

CreateTranslation
public static void CreateTranslation(Vector3 vector, Matrix4X4 result)
Matrix4X4.CreateTranslation(vector, result)

Erstellt eine Übersetzungsmatrix.

vector
Der Translationsvektor.
result
Die resultierende Matrix4d-Instanz.
Equals
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.

Equals
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.

Frustum
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

GetHashCode
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.

Invert
public void Invert()
matrix4X4.Invert()

Konvertiert diese Instanz in ihre Umkehrung.

Invert
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

LookAt
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

LookAt
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

Mult
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

Mult
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
op_Equality
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.

op_Inequality
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.

op_Multiply
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

Perspective
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

ToString
public override string ToString()
result = matrix4X4.ToString()

Gibt ein System.String zurück, das die aktuelle Matrix44 darstellt.

Transpose
public void Transpose()
matrix4X4.Transpose()

Konvertiert diese Instanz in ihre Transposition.

Transpose
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

Transpose
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

Felder

Identity
public static Matrix4X4 Identity
value = Matrix4X4.Identity

Die Identitätsmatrix

Row0
public Vector4 Row0
value = matrix4X4.Row0

Obere Zeile der Matrix

Row1
public Vector4 Row1
value = matrix4X4.Row1

2. Zeile der Matrix

Row2
public Vector4 Row2
value = matrix4X4.Row2

3. Zeile der Matrix

Row3
public Vector4 Row3
value = matrix4X4.Row3

Untere Zeile der Matrix