Matrix4X4
Representa una matriz 4x4 con componentes de doble precisión.
Implementa: IEquatable<Matrix4X4>
Constructores
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
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
public double Determinant { get; }
value = matrix4X4.Determinant
El determinante de esta matriz
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
Métodos
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.
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.
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.
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.
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.
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.
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
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
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
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
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
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
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.
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.
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.
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.
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.
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.
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
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
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
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.
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.
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.
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.
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.
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.
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
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.
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
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
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
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
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
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.
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.
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
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
public override string ToString()
result = matrix4X4.ToString()
Devuelve a System.String que representa la Matrix44 actual.
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
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