Matrix4X4

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

Representa uma Matriz 4x4 com componentes de dupla precisão.

Implementa: IEquatable<Matrix4X4>

Construtores

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

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

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

A primeira coluna desta matriz

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

A segunda coluna desta matriz

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

A terceira coluna desta matriz

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

A quarta coluna desta matriz

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

O determinante desta matriz

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Obter apenas a posição fora da matriz.

Métodos

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

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

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.

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)

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

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)

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

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

CreateRotation
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

CreateRotation
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

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

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

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

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

CreateScale
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

CreateScale
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

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

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

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

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

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

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

Invert
public void Invert()
matrix4X4.Invert()

Converte esta instância para o seu inverso.

Invert
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

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

LookAt
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

Mult
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

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

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

op_Multiply
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

Perspective
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

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

Retorna um System.String que representa a Matrix44 atual.

Transpose
public void Transpose()
matrix4X4.Transpose()

Converte esta instância para a sua transposição.

Transpose
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

Transpose
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

Campos

Identity
public static Matrix4X4 Identity
value = Matrix4X4.Identity

A matriz de identidade

Row0
public Vector4 Row0
value = matrix4X4.Row0

Linha superior da matriz

Row1
public Vector4 Row1
value = matrix4X4.Row1

2a linha da matriz

Row2
public Vector4 Row2
value = matrix4X4.Row2

3a linha da matriz

Row3
public Vector4 Row3
value = matrix4X4.Row3

Fila inferior da matriz