Matrix4X4
Representa uma Matriz 4x4 com componentes de dupla precisão.
Implementa: IEquatable<Matrix4X4>
Construtores
public Matrix4X4(Vector4 row0, Vector4 row1, Vector4 row2, Vector4 row3)
matrix4X4 = Matrix4X4(row0, row1, row2, row3)
Construi uma nova instância.
- row0
- Linha superior da matriz
- row1
- Segunda linha da matriz
- row2
- Terceira linha da matriz
- row3
- Fila inferior da 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)
Construi uma nova instância.
- m00
- Primeiro item da primeira linha.
- m01
- Segundo item da primeira linha.
- m02
- Terceiro item da primeira linha.
- m03
- Quarto item da primeira linha.
- m10
- Primeiro item da segunda linha.
- m11
- Segundo item da segunda linha.
- m12
- Terceiro item da segunda linha.
- m13
- Quarto item da segunda linha.
- m20
- Primeiro item da terceira linha.
- m21
- Segundo item da terceira linha.
- m22
- Terceiro item da terceira linha.
- m23
- Primeiro item da terceira linha.
- m30
- Quarto item da quarta linha.
- m31
- Segundo item da quarta linha.
- m32
- Terceiro item da quarta linha.
- m33
- Quarto item da quarta linha.
Propriedades
public double Determinant { get; }
value = matrix4X4.Determinant
O determinante desta matriz
public double M11 { get; set; }
value = matrix4X4.M11
matrix4X4.M11 = value
Obtém ou define o valor na linha 1, coluna 1 desta instância.
public double M12 { get; set; }
value = matrix4X4.M12
matrix4X4.M12 = value
Obtém ou define o valor na linha 1, coluna 2 desta instância.
public double M13 { get; set; }
value = matrix4X4.M13
matrix4X4.M13 = value
Obtém ou define o valor na linha 1, coluna 3 desta instância.
public double M14 { get; set; }
value = matrix4X4.M14
matrix4X4.M14 = value
Obtém ou define o valor na linha 1, coluna 4 desta instância.
public double M21 { get; set; }
value = matrix4X4.M21
matrix4X4.M21 = value
Obtém ou define o valor na linha 2, coluna 1 desta instância.
public double M22 { get; set; }
value = matrix4X4.M22
matrix4X4.M22 = value
Obtém ou define o valor na linha 2, coluna 2 desta instância.
public double M23 { get; set; }
value = matrix4X4.M23
matrix4X4.M23 = value
Obtém ou define o valor na linha 2, coluna 3 desta instância.
public double M24 { get; set; }
value = matrix4X4.M24
matrix4X4.M24 = value
Obtém ou define o valor na linha 2, coluna 4 desta instância.
public double M31 { get; set; }
value = matrix4X4.M31
matrix4X4.M31 = value
Obtém ou define o valor na linha 3, coluna 1 desta instância.
public double M32 { get; set; }
value = matrix4X4.M32
matrix4X4.M32 = value
Obtém ou define o valor na linha 3, coluna 2 desta instância.
public double M33 { get; set; }
value = matrix4X4.M33
matrix4X4.M33 = value
Obtém ou define o valor na linha 3, coluna 3 desta instância.
public double M34 { get; set; }
value = matrix4X4.M34
matrix4X4.M34 = value
Obtém ou define o valor na linha 3, coluna 4 desta instância.
public double M41 { get; set; }
value = matrix4X4.M41
matrix4X4.M41 = value
Obtém ou define o valor na linha 4, coluna 1 desta instância.
public double M42 { get; set; }
value = matrix4X4.M42
matrix4X4.M42 = value
Obtém ou define o valor na linha 4, coluna 2 desta instância.
public double M43 { get; set; }
value = matrix4X4.M43
matrix4X4.M43 = value
Obtém ou define o valor na linha 4, coluna 3 desta instância.
public double M44 { get; set; }
value = matrix4X4.M44
matrix4X4.M44 = value
Obtém ou define o valor na linha 4, coluna 4 desta instância.
public Vector3 Position { get; }
value = matrix4X4.Position
Obter apenas a posição fora da matriz.
Métodos
public static void CreateFromAxisAngle(Vector3 axis, double angle, Matrix4X4 result)
Matrix4X4.CreateFromAxisAngle(axis, angle, result)
Construir uma matriz de rotação a partir da rotação do eixo/ângulo especificada.
- axis
- O eixo para rodar.
- angle
- Ângulo em radianos para rodar no sentido anti-horário (olhando na direção do eixo indicado).
- result
- Uma instância matricial.
public static Matrix4X4 CreateFromAxisAngle(Vector3 axis, double angle)
result = Matrix4X4.CreateFromAxisAngle(axis, angle)
Construir uma matriz de rotação a partir da rotação do eixo/ângulo especificada.
- axis
- O eixo para rodar.
- angle
- Ângulo em radianos para rodar no sentido anti-horário (olhando na direção do eixo indicado).
Retorna: Uma instância matricial.
public static void CreateOrthographic(double width, double height, double zNear, double zFar, Matrix4X4 result)
Matrix4X4.CreateOrthographic(width, height, zNear, zFar, result)
Cria uma matriz de projeção ortográfica.
- width
- A largura do volume de projeção.
- height
- A altura do volume de projeção.
- zNear
- A borda próxima do volume de projeção.
- zFar
- A borda mais distante do volume de projeção.
- result
- A instância Matrix4d resultante.
public static Matrix4X4 CreateOrthographic(double width, double height, double zNear, double zFar)
result = Matrix4X4.CreateOrthographic(width, height, zNear, zFar)
Cria uma matriz de projeção ortográfica.
- width
- A largura do volume de projeção.
- height
- A altura do volume de projeção.
- zNear
- A borda próxima do volume de projeção.
- zFar
- A borda mais distante do volume de projeção.
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)
Cria uma matriz de projeção ortográfica.
- left
- A borda esquerda do volume de projeção.
- right
- A borda direita do volume de projeção.
- bottom
- A borda inferior do volume de projeção.
- top
- A borda superior do volume de projeção.
- zNear
- A borda próxima do volume de projeção.
- zFar
- A borda mais distante do volume de projeção.
Retorna: A instância 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)
Cria uma matriz de projeção ortográfica.
- left
- A borda esquerda do volume de projeção.
- right
- A borda direita do volume de projeção.
- bottom
- A borda inferior do volume de projeção.
- top
- A borda superior do volume de projeção.
- zNear
- A borda próxima do volume de projeção.
- zFar
- A borda mais distante do volume de projeção.
- result
- A instância Matrix4d resultante.
public static void CreatePerspectiveFieldOfView(double fovYRadians, double aspectWidthOverHeight, double zNear, double zFar, Matrix4X4 result)
Matrix4X4.CreatePerspectiveFieldOfView(fovYRadians, aspectWidthOverHeight, zNear, zFar, result)
Cria uma matriz de projeção de perspectiva.
- fovYRadians
- Ângulo do campo de visão na direção y (em radianos)
- aspectWidthOverHeight
- Relação de aspecto da vista (largura/altura)
- zNear
- Distância para o plano próximo do clipe
- zFar
- Distância para o plano de clipe distante
- result
- Uma matriz de projeção que transforma espaço da câmera para rasterar espaço
public static Matrix4X4 CreatePerspectiveFieldOfView(double fovYRadians, double aspectWidthOverHeight, double zNear, double zFar)
result = Matrix4X4.CreatePerspectiveFieldOfView(fovYRadians, aspectWidthOverHeight, zNear, zFar)
Cria uma matriz de projeção de perspectiva.
- fovYRadians
- Ângulo do campo de visão na direção y (em radianos)
- aspectWidthOverHeight
- Relação de aspecto da vista (largura/altura)
- zNear
- Distância para o plano próximo do clipe
- zFar
- Distância para o plano de clipe distante
Retorna: Uma matriz de projeção que transforma espaço da câmera para rasterar espaço
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)
Cria uma matriz de projeção de perspectiva.
- left
- A margem esquerda da janela frustum
- right
- A margem direita do frusto da vista
- bottom
- A borda inferior da janela do frústum
- top
- Borda superior da janela frustum
- zNear
- Distância para o plano próximo do clipe
- zFar
- Distância para o plano de clipe distante
- result
- Uma matriz de projeção que transforma espaço da câmera para rasterar espaço
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)
Cria uma matriz de projeção de perspectiva.
- left
- A margem esquerda da janela frustum
- right
- A margem direita do frusto da vista
- bottom
- A borda inferior da janela do frústum
- top
- Borda superior da janela frustum
- zNear
- Distância para o plano próximo do clipe
- zFar
- Distância para o plano de clipe distante
Retorna: Uma matriz de projeção que transforma espaço da câmera para rasterar espaço
public static Matrix4X4 CreateRotation(Vector3 axis, double angle)
result = Matrix4X4.CreateRotation(axis, angle)
Construir uma matriz de rotação para rodar sobre o eixo indicado
- axis
- o eixo a rodar em torno de
- angle
- ângulo em radianos para rodar no sentido anti-horário (olhando na direção do eixo indicado)
Retorna: Uma matriz de rotação
public static Matrix4X4 CreateRotation(Quaternion q)
result = Matrix4X4.CreateRotation(q)
Construir uma matriz de rotação a partir de um quaternião
- q
- o quaternião
Retorna: Uma matriz de rotação
public static void CreateRotationX(double angle, Matrix4X4 result)
Matrix4X4.CreateRotationX(angle, result)
Constrói uma matriz de rotação para uma rotação em torno do eixo x.
- angle
- O ângulo anti-horário em radianos.
- result
- A instância resultante Matrix4.
public static Matrix4X4 CreateRotationX(double angle)
result = Matrix4X4.CreateRotationX(angle)
Constrói uma matriz de rotação para uma rotação em torno do eixo x.
- angle
- O ângulo anti-horário em radianos.
Retorna: A instância resultante Matrix4.
public static Matrix4X4 CreateRotationY(double angle)
result = Matrix4X4.CreateRotationY(angle)
Constrói uma matriz de rotação para uma rotação em torno do eixo y.
- angle
- O ângulo anti-horário em radianos.
Retorna: A instância resultante Matrix4.
public static void CreateRotationY(double angle, Matrix4X4 result)
Matrix4X4.CreateRotationY(angle, result)
Constrói uma matriz de rotação para uma rotação em torno do eixo y.
- angle
- O ângulo anti-horário em radianos.
- result
- A instância resultante Matrix4.
public static Matrix4X4 CreateRotationZ(double angle)
result = Matrix4X4.CreateRotationZ(angle)
Compila uma matriz de rotação para uma rotação em torno do eixo z.
- angle
- O ângulo anti-horário em radianos.
Retorna: A instância resultante Matrix4.
public static void CreateRotationZ(double angle, Matrix4X4 result)
Matrix4X4.CreateRotationZ(angle, result)
Compila uma matriz de rotação para uma rotação em torno do eixo z.
- angle
- O ângulo anti-horário em radianos.
- result
- A instância resultante Matrix4.
public static Matrix4X4 CreateScale(double x, double y, double z)
result = Matrix4X4.CreateScale(x, y, z)
Compilar uma matriz de escala
- x
- Fator de escala para eixo x
- y
- Fator de escala para eixo y
- z
- Fator de escala para eixo z
Retorna: Uma matriz de escala
public static Matrix4X4 CreateScale(Vector3 scale)
result = Matrix4X4.CreateScale(scale)
Compilar uma matriz de escala
- scale
- Factores de escala para eixos x,y e z
Retorna: Uma matriz de escala
public static Matrix4X4 CreateScale(double scale)
result = Matrix4X4.CreateScale(scale)
Compilar uma matriz de escala
- scale
- Fator de escala única para eixos x,y e z
Retorna: Uma matriz de escala
public static void CreateTranslation(double x, double y, double z, Matrix4X4 result)
Matrix4X4.CreateTranslation(x, y, z, result)
Cria uma matriz de tradução.
- x
- Tradução X.
- y
- Tradução Y.
- z
- Tradução Z.
- result
- A instância Matrix4d resultante.
public static Matrix4X4 CreateTranslation(double x, double y, double z)
result = Matrix4X4.CreateTranslation(x, y, z)
Cria uma matriz de tradução.
- x
- Tradução X.
- y
- Tradução Y.
- z
- Tradução Z.
Retorna: A instância Matrix4d resultante.
public static Matrix4X4 CreateTranslation(Vector3 vector)
result = Matrix4X4.CreateTranslation(vector)
Cria uma matriz de tradução.
- vector
- O vector de tradução.
Retorna: A instância Matrix4d resultante.
public static void CreateTranslation(Vector3 vector, Matrix4X4 result)
Matrix4X4.CreateTranslation(vector, result)
Cria uma matriz de tradução.
- vector
- O vector de tradução.
- result
- A instância Matrix4d resultante.
public override bool Equals(object obj)
result = matrix4X4.Equals(obj)
Indica se esta instância e um objeto especificado são iguais.
- obj
- O objeto a comparar.
Retorna: Verdadeiro se as instâncias são iguais; falso caso contrário.
public bool Equals(Matrix4X4 other)
result = matrix4X4.Equals(other)
Indica se a matriz atual é igual a outra matriz.
- other
- Uma matriz para comparar com esta matriz.
Retorna: true se a matriz atual é igual ao parâmetro matriz; caso contrário, 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)
Construir uma matriz de projeção
- left
- A margem esquerda da janela frustum
- right
- A margem direita do frusto da vista
- bottom
- A borda inferior da janela do frústum
- top
- Borda superior da janela frustum
- near
- Distância para o plano próximo do clipe
- far
- Distância para o plano de clipe distante
Retorna: Uma matriz de projeção que transforma espaço da câmera para rasterar espaço
public override int GetHashCode()
result = matrix4X4.GetHashCode()
Devolve o hashcode para este exemplo.
Retorna: Um System.Int32 contendo o hashcode único para esta instância.
public static Matrix4X4 Invert(Matrix4X4 mat)
result = Matrix4X4.Invert(mat)
Calcular o inverso da matriz dada
- mat
- A matriz a inverter
Retorna: O inverso da matriz dada se ela tem uma, ou a entrada se ela é 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 um espaço mundial para a matriz espacial da câmara
- eyeX
- Posição do olho (câmera) no espaço mundial
- eyeY
- Posição do olho (câmera) no espaço mundial
- eyeZ
- Posição do olho (câmera) no espaço mundial
- targetX
- Posição do alvo no espaço mundial
- targetY
- Posição do alvo no espaço mundial
- targetZ
- Posição do alvo no espaço mundial
- upX
- Vetor ascendente no espaço mundial (não deve ser paralelo à direção da câmera, que é alvo - olho)
- upY
- Vetor ascendente no espaço mundial (não deve ser paralelo à direção da câmera, que é alvo - olho)
- upZ
- Vetor ascendente no espaço mundial (não deve ser paralelo à direção da câmera, que é alvo - olho)
Retorna: Uma Matrix4 que transforma espaço mundial em espaço de câmera
public static Matrix4X4 LookAt(Vector3 eye, Vector3 target, Vector3 up)
result = Matrix4X4.LookAt(eye, target, up)
Construir um espaço mundial para a matriz espacial da câmara
- eye
- Posição do olho (câmera) no espaço mundial
- target
- Posição do alvo no espaço mundial
- up
- Vetor ascendente no espaço mundial (não deve ser paralelo à direção da câmera, que é alvo - olho)
Retorna: Uma Matriz que transforma espaço mundial em espaço de câmera
public static Matrix4X4 Mult(Matrix4X4 left, Matrix4X4 right)
result = Matrix4X4.Mult(left, right)
Multiplica duas instâncias.
- left
- O operand esquerdo da multiplicação.
- right
- O operand direito da multiplicação.
Retorna: Uma nova instância que é o resultado da multiplicação
public static void Mult(Matrix4X4 left, Matrix4X4 right, Matrix4X4 result)
Matrix4X4.Mult(left, right, result)
Multiplica duas instâncias.
- left
- O operand esquerdo da multiplicação.
- right
- O operand direito da multiplicação.
- result
- Uma nova instância que é o resultado da multiplicação
public static bool op_Equality(Matrix4X4 left, Matrix4X4 right)
result = Matrix4X4.op_Equality(left, right)
Compara duas instâncias para igualdade.
- left
- A primeira instância.
- right
- A segunda instância.
Retorna: Verdade, se a esquerda é igual à direita; falsa de outra forma.
public static bool op_Inequality(Matrix4X4 left, Matrix4X4 right)
result = Matrix4X4.op_Inequality(left, right)
Compara duas instâncias para a desigualdade.
- left
- A primeira instância.
- right
- A segunda instância.
Retorna: É verdade que se a esquerda não é igual à direita; falsa de outra forma.
public static Matrix4X4 op_Multiply(Matrix4X4 left, Matrix4X4 right)
result = Matrix4X4.op_Multiply(left, right)
Multiplicação matricial
- left
- Operante esquerdo
- right
- Operante da direita
Retorna: Uma nova Matrix44 que detém o resultado da multiplicação
public static Matrix4X4 Perspective(double fovy, double aspect, double near, double far)
result = Matrix4X4.Perspective(fovy, aspect, near, far)
Construir uma matriz de projeção
- fovy
- Ângulo do campo de visão na direção y (em radianos)
- aspect
- Relação de aspecto da vista (largura/altura)
- near
- Distância para o plano próximo do clipe
- far
- Distância para o plano de clipe distante
Retorna: Uma matriz de projeção que transforma espaço da câmera para rasterar espaço
public override string ToString()
result = matrix4X4.ToString()
Retorna um System.String que representa a Matrix44 atual.
public void Transpose()
matrix4X4.Transpose()
Converte esta instância para a sua transposição.
public static Matrix4X4 Transpose(Matrix4X4 mat)
result = Matrix4X4.Transpose(mat)
Calcular a transposição da matriz dada
- mat
- A matriz a transpor
Retorna: Transposição da matriz dada
public static void Transpose(Matrix4X4 mat, Matrix4X4 result)
Matrix4X4.Transpose(mat, result)
Calcular a transposição da matriz dada
- mat
- A matriz a transpor
- result
- Resultado do cálculo