Matrix4X4

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

Representa una matriz 4x4 con componentes de doble precisión.

Implementa: IEquatable<Matrix4X4>

Constructores

Matrix4X4
public Matrix4X4(Vector4 row0, Vector4 row1, Vector4 row2, Vector4 row3)
matrix4X4 = Matrix4X4(row0, row1, row2, row3)

Construye una nueva instancia.

row0
Rema superior de la matriz
row1
Segunda fila de la matriz
row2
Tercera fila de la matriz
row3
Fila inferior de la matriz
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)

Construye una nueva instancia.

m00
Primer artículo de la primera fila.
m01
Segundo punto de la primera fila.
m02
Tercer artículo de la primera fila.
m03
Cuarto punto de la primera fila.
m10
Primer punto de la segunda fila.
m11
Segundo punto de la segunda fila.
m12
Tercer artículo de la segunda fila.
m13
Cuarto punto de la segunda fila.
m20
Primer punto de la tercera fila.
m21
Segundo punto de la tercera fila.
m22
Tercer artículo de la tercera fila.
m23
Primer punto de la tercera fila.
m30
Cuarto punto de la cuarta fila.
m31
Segundo punto de la cuarta fila.
m32
Tercer artículo de la cuarta fila.
m33
Cuarto punto de la cuarta fila.

Propiedades

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

La primera columna de esta matriz

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

La segunda columna de esta matriz

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

La tercera columna de esta matriz

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

La cuarta columna de esta matriz

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

El determinante de esta matriz

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

Obtiene o establece el valor en la fila 1, columna 1 de este caso.

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

Obtiene o establece el valor en la fila 1, columna 2 de este caso.

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

Obtiene o establece el valor en la fila 1, columna 3 de este caso.

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

Obtiene o establece el valor en la fila 1, columna 4 de este caso.

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

Obtiene o establece el valor en la fila 2, columna 1 de este caso.

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

Obtiene o establece el valor en la fila 2, columna 2 de este caso.

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

Obtiene o establece el valor en la fila 2, columna 3 de este caso.

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

Obtiene o establece el valor en la fila 2, columna 4 de este caso.

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

Obtiene o establece el valor en la fila 3, columna 1 de este caso.

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

Obtiene o establece el valor en la fila 3, columna 2 de este caso.

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

Obtiene o establece el valor en la fila 3, columna 3 de este caso.

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

Obtiene o establece el valor en la fila 3, columna 4 de este caso.

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

Obtiene o establece el valor en la fila 4, columna 1 de este caso.

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

Obtiene o establece el valor en la fila 4, columna 2 de este caso.

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

Obtiene o establece el valor en la fila 4, columna 3 de este caso.

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

Obtiene o establece el valor en la fila 4, columna 4 de este caso.

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

Saca la posición de la matriz.

Métodos

CreateFromAxisAngle
public static void CreateFromAxisAngle(Vector3 axis, double angle, Matrix4X4 result)
Matrix4X4.CreateFromAxisAngle(axis, angle, result)

Construya una matriz de rotación del eje/ángulo especificado.

axis
El eje para girar alrededor.
angle
Ángulo en radianos para girar el contrarreloj (mirando en la dirección del eje dado).
result
Un ejemplo de matriz.
CreateFromAxisAngle
public static Matrix4X4 CreateFromAxisAngle(Vector3 axis, double angle)
result = Matrix4X4.CreateFromAxisAngle(axis, angle)

Construya una matriz de rotación del eje/ángulo especificado.

axis
El eje para girar alrededor.
angle
Ángulo en radianos para girar el contrarreloj (mirando en la dirección del eje dado).

Devuelve: Un ejemplo de matriz.

CreateOrthographic
public static void CreateOrthographic(double width, double height, double zNear, double zFar, Matrix4X4 result)
Matrix4X4.CreateOrthographic(width, height, zNear, zFar, result)

Crea una matriz de proyección ortográfico.

width
El ancho del volumen de proyección.
height
La altura del volumen de proyección.
zNear
El borde cercano del volumen de proyección.
zFar
El borde lejano del volumen de proyección.
result
La instancia Matrix4d resultante.
CreateOrthographic
public static Matrix4X4 CreateOrthographic(double width, double height, double zNear, double zFar)
result = Matrix4X4.CreateOrthographic(width, height, zNear, zFar)

Crea una matriz de proyección ortográfico.

width
El ancho del volumen de proyección.
height
La altura del volumen de proyección.
zNear
El borde cercano del volumen de proyección.
zFar
El borde lejano del volumen de proyección.
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)

Crea una matriz de proyección ortográfico.

left
El borde izquierdo del volumen de proyección.
right
El borde derecho del volumen de proyección.
bottom
El borde inferior del volumen de proyección.
top
El borde superior del volumen de proyección.
zNear
El borde cercano del volumen de proyección.
zFar
El borde lejano del volumen de proyección.

Devuelve: La instancia Matrix4d resultante.

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)

Crea una matriz de proyección ortográfico.

left
El borde izquierdo del volumen de proyección.
right
El borde derecho del volumen de proyección.
bottom
El borde inferior del volumen de proyección.
top
El borde superior del volumen de proyección.
zNear
El borde cercano del volumen de proyección.
zFar
El borde lejano del volumen de proyección.
result
La instancia Matrix4d resultante.
CreatePerspectiveFieldOfView
public static void CreatePerspectiveFieldOfView(double fovYRadians, double aspectWidthOverHeight, double zNear, double zFar, Matrix4X4 result)
Matrix4X4.CreatePerspectiveFieldOfView(fovYRadians, aspectWidthOverHeight, zNear, zFar, result)

Crea una matriz de proyección de perspectiva.

fovYRadians
Ángulo del campo de visión en la dirección y (en radians)
aspectWidthOverHeight
Relación de aspecto de la vista (anchura / altura)
zNear
Distancia al plano de clip cercano
zFar
Distancia al plano de clips lejanos
result
Una matriz de proyección que transforma el espacio de cámara para el espacio de raster
CreatePerspectiveFieldOfView
public static Matrix4X4 CreatePerspectiveFieldOfView(double fovYRadians, double aspectWidthOverHeight, double zNear, double zFar)
result = Matrix4X4.CreatePerspectiveFieldOfView(fovYRadians, aspectWidthOverHeight, zNear, zFar)

Crea una matriz de proyección de perspectiva.

fovYRadians
Ángulo del campo de visión en la dirección y (en radians)
aspectWidthOverHeight
Relación de aspecto de la vista (anchura / altura)
zNear
Distancia al plano de clip cercano
zFar
Distancia al plano de clips lejanos

Devuelve: Una matriz de proyección que transforma el espacio de cámara para el espacio de raster

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)

Crea una matriz de proyección de perspectiva.

left
Borde izquierdo de la vista frustum
right
Al borde derecho de la vista frustum
bottom
Borde inferior de la vista frustum
top
Ángulo superior de la vista frustum
zNear
Distancia al plano de clip cercano
zFar
Distancia al plano de clips lejanos
result
Una matriz de proyección que transforma el espacio de cámara para el espacio de raster
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)

Crea una matriz de proyección de perspectiva.

left
Borde izquierdo de la vista frustum
right
Al borde derecho de la vista frustum
bottom
Borde inferior de la vista frustum
top
Ángulo superior de la vista frustum
zNear
Distancia al plano de clip cercano
zFar
Distancia al plano de clips lejanos

Devuelve: Una matriz de proyección que transforma el espacio de cámara para el espacio de raster

CreateRotation
public static Matrix4X4 CreateRotation(Vector3 axis, double angle)
result = Matrix4X4.CreateRotation(axis, angle)

Construir una matriz de rotación para girar sobre el eje dado

axis
el eje para girar alrededor
angle
ángulo en radianos para girar el contra-auricular (mirando en la dirección del eje dado)

Devuelve: Una matriz de rotación

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

Construir una matriz de rotación de una cuaternión

q
la cuaternión

Devuelve: Una matriz de rotación

CreateRotationX
public static void CreateRotationX(double angle, Matrix4X4 result)
Matrix4X4.CreateRotationX(angle, result)

Construye una matriz de rotación para una rotación alrededor del eje x.

angle
El ángulo de la contrarresistente en radians.
result
La instancia Matrix4 resultante.
CreateRotationX
public static Matrix4X4 CreateRotationX(double angle)
result = Matrix4X4.CreateRotationX(angle)

Construye una matriz de rotación para una rotación alrededor del eje x.

angle
El ángulo de la contrarresistente en radians.

Devuelve: La instancia Matrix4 resultante.

CreateRotationY
public static Matrix4X4 CreateRotationY(double angle)
result = Matrix4X4.CreateRotationY(angle)

Construye una matriz de rotación para una rotación alrededor del eje y.

angle
El ángulo de la contrarresistente en radians.

Devuelve: La instancia Matrix4 resultante.

CreateRotationY
public static void CreateRotationY(double angle, Matrix4X4 result)
Matrix4X4.CreateRotationY(angle, result)

Construye una matriz de rotación para una rotación alrededor del eje y.

angle
El ángulo de la contrarresistente en radians.
result
La instancia Matrix4 resultante.
CreateRotationZ
public static Matrix4X4 CreateRotationZ(double angle)
result = Matrix4X4.CreateRotationZ(angle)

Construye una matriz de rotación para una rotación alrededor del eje z.

angle
El ángulo de la contrarresistente en radians.

Devuelve: La instancia Matrix4 resultante.

CreateRotationZ
public static void CreateRotationZ(double angle, Matrix4X4 result)
Matrix4X4.CreateRotationZ(angle, result)

Construye una matriz de rotación para una rotación alrededor del eje z.

angle
El ángulo de la contrarresistente en radians.
result
La instancia Matrix4 resultante.
CreateScale
public static Matrix4X4 CreateScale(double x, double y, double z)
result = Matrix4X4.CreateScale(x, y, z)

Construir una matriz de escalado

x
Factor de escala para eje x
y
Factor de escala para el eje y
z
Factor de escala para eje z

Devuelve: Una matriz de escalado

CreateScale
public static Matrix4X4 CreateScale(Vector3 scale)
result = Matrix4X4.CreateScale(scale)

Construir una matriz de escalado

scale
Factores de escala para ejes x,y y z

Devuelve: Una matriz de escalado

CreateScale
public static Matrix4X4 CreateScale(double scale)
result = Matrix4X4.CreateScale(scale)

Construir una matriz de escalado

scale
Factor de escala única para ejes x,y y z

Devuelve: Una matriz de escalado

CreateTranslation
public static void CreateTranslation(double x, double y, double z, Matrix4X4 result)
Matrix4X4.CreateTranslation(x, y, z, result)

Crea una matriz de traducción.

x
Traducción X.
y
Y traducción.
z
Traducción Z.
result
La instancia Matrix4d resultante.
CreateTranslation
public static Matrix4X4 CreateTranslation(double x, double y, double z)
result = Matrix4X4.CreateTranslation(x, y, z)

Crea una matriz de traducción.

x
Traducción X.
y
Y traducción.
z
Traducción Z.

Devuelve: La instancia Matrix4d resultante.

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

Crea una matriz de traducción.

vector
El vector de traducción.

Devuelve: La instancia Matrix4d resultante.

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

Crea una matriz de traducción.

vector
El vector de traducción.
result
La instancia Matrix4d resultante.
Equals
public override bool Equals(object obj)
result = matrix4X4.Equals(obj)

Indica si este caso y un objeto específico son iguales.

obj
El objeto a comparar.

Devuelve: Cierto si los casos son iguales; falso de lo contrario.

Equals
public bool Equals(Matrix4X4 other)
result = matrix4X4.Equals(other)

Indica si la matriz actual es igual a otra matriz.

other
Una matriz para comparar con esta matriz.

Devuelve: verdadero si la matriz actual es igual al parámetro matriz; de lo contrario, falso.

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)

Construir una matriz de proyección

left
Borde izquierdo de la vista frustum
right
Al borde derecho de la vista frustum
bottom
Borde inferior de la vista frustum
top
Ángulo superior de la vista frustum
near
Distancia al plano de clip cercano
far
Distancia al plano de clips lejanos

Devuelve: Una matriz de proyección que transforma el espacio de cámara para el espacio de raster

GetHashCode
public override int GetHashCode()
result = matrix4X4.GetHashCode()

Devuelve el código de hashcode para este caso.

Devuelve: A System.Int32 que contiene el código de hashcode único para este caso.

Invert
public void Invert()
matrix4X4.Invert()

Convierte esta instancia en su inverso.

Invert
public static Matrix4X4 Invert(Matrix4X4 mat)
result = Matrix4X4.Invert(mat)

Calcular el inverso de la matriz dada

mat
La matriz para invertir

Devuelve: El inverso de la matriz dada si tiene uno, o la entrada si es singular

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)

Construir un espacio mundial para la matriz espacial de cámara

eyeX
Posición de ojos (camera) en el espacio mundial
eyeY
Posición de ojos (camera) en el espacio mundial
eyeZ
Posición de ojos (camera) en el espacio mundial
targetX
Posición de objetivos en el espacio mundial
targetY
Posición de objetivos en el espacio mundial
targetZ
Posición de objetivos en el espacio mundial
upX
Subir vector en el espacio mundial (no debe ser paralelo a la dirección de la cámara, que es blanco - ojo)
upY
Subir vector en el espacio mundial (no debe ser paralelo a la dirección de la cámara, que es blanco - ojo)
upZ
Subir vector en el espacio mundial (no debe ser paralelo a la dirección de la cámara, que es blanco - ojo)

Devuelve: Una matriz4 que transforma el espacio mundial en espacio de cámara

LookAt
public static Matrix4X4 LookAt(Vector3 eye, Vector3 target, Vector3 up)
result = Matrix4X4.LookAt(eye, target, up)

Construir un espacio mundial para la matriz espacial de cámara

eye
Posición de ojos (camera) en el espacio mundial
target
Posición de objetivos en el espacio mundial
up
Subir vector en el espacio mundial (no debe ser paralelo a la dirección de la cámara, que es blanco - ojo)

Devuelve: Una matriz que transforma el espacio mundial en espacio de cámara

Mult
public static Matrix4X4 Mult(Matrix4X4 left, Matrix4X4 right)
result = Matrix4X4.Mult(left, right)

Multiplica dos casos.

left
El operado izquierdo de la multiplicación.
right
El operado derecho de la multiplicación.

Devuelve: Una nueva instancia que es el resultado de la multiplicación

Mult
public static void Mult(Matrix4X4 left, Matrix4X4 right, Matrix4X4 result)
Matrix4X4.Mult(left, right, result)

Multiplica dos casos.

left
El operado izquierdo de la multiplicación.
right
El operado derecho de la multiplicación.
result
Una nueva instancia que es el resultado de la multiplicación
op_Equality
public static bool op_Equality(Matrix4X4 left, Matrix4X4 right)
result = Matrix4X4.op_Equality(left, right)

Compara dos casos para la igualdad.

left
La primera instancia.
right
La segunda instancia.

Devuelve: Cierto, si la izquierda es igual a la derecha; falso de lo contrario.

op_Inequality
public static bool op_Inequality(Matrix4X4 left, Matrix4X4 right)
result = Matrix4X4.op_Inequality(left, right)

Compara dos casos de desigualdad.

left
La primera instancia.
right
La segunda instancia.

Devuelve: Cierto, si la izquierda no es igual a la derecha; falso de lo contrario.

op_Multiply
public static Matrix4X4 op_Multiply(Matrix4X4 left, Matrix4X4 right)
result = Matrix4X4.op_Multiply(left, right)

Multiplicación de matriz

left
de la izquierda
right
de la mano derecha

Devuelve: Una nueva Matriz44 que sostiene el resultado de la multiplicación

Perspective
public static Matrix4X4 Perspective(double fovy, double aspect, double near, double far)
result = Matrix4X4.Perspective(fovy, aspect, near, far)

Construir una matriz de proyección

fovy
Ángulo del campo de visión en la dirección y (en radians)
aspect
Relación de aspecto de la vista (anchura / altura)
near
Distancia al plano de clip cercano
far
Distancia al plano de clips lejanos

Devuelve: Una matriz de proyección que transforma el espacio de cámara para el espacio de raster

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

Devuelve a System.String que representa la Matrix44 actual.

Transpose
public void Transpose()
matrix4X4.Transpose()

Convierte esta instancia en su transpose.

Transpose
public static Matrix4X4 Transpose(Matrix4X4 mat)
result = Matrix4X4.Transpose(mat)

Calcular la transposición de la matriz dada

mat
La matriz para transponer

Devuelve: La transposición de la matriz dada

Transpose
public static void Transpose(Matrix4X4 mat, Matrix4X4 result)
Matrix4X4.Transpose(mat, result)

Calcular la transposición de la matriz dada

mat
La matriz para transponer
result
El resultado del cálculo

Campos

Identity
public static Matrix4X4 Identity
value = Matrix4X4.Identity

La matriz de identidad

Row0
public Vector4 Row0
value = matrix4X4.Row0

Rema superior de la matriz

Row1
public Vector4 Row1
value = matrix4X4.Row1

2a fila de la matriz

Row2
public Vector4 Row2
value = matrix4X4.Row2

3a fila de la matriz

Row3
public Vector4 Row3
value = matrix4X4.Row3

Fila inferior de la matriz