Matrix Estrutura

Definição

Representa uma matriz de transformação afim 3x3 usada para transformações no espaço 2D.

public value class Matrix : IFormattable
[System.ComponentModel.TypeConverter(typeof(System.Windows.Media.MatrixConverter))]
[System.Serializable]
public struct Matrix : IFormattable
[System.ComponentModel.TypeConverter(typeof(System.Windows.Media.MatrixConverter))]
public struct Matrix : IFormattable
[<System.ComponentModel.TypeConverter(typeof(System.Windows.Media.MatrixConverter))>]
[<System.Serializable>]
type Matrix = struct
    interface IFormattable
[<System.ComponentModel.TypeConverter(typeof(System.Windows.Media.MatrixConverter))>]
type Matrix = struct
    interface IFormattable
Public Structure Matrix
Implements IFormattable
Herança
Matrix
Atributos
Implementações

Observações

Uma matriz 3x3 é usada para transformações num plano 2D x-y. As matrizes de transformação afim podem ser multiplicadas para formar qualquer número de transformações lineares, como rotação e inclinação (cisalhamento), seguidas de translação. Uma matriz de transformação afim tem a sua coluna final igual a (0, 0, 1), pelo que apenas os elementos nas duas primeiras colunas precisam de ser especificados. Note-se que os vetores são expressos como vetores linha, não como vetores coluna.

Um WPF Matrix é armazenado usando ordem de linha maior e tem a seguinte estrutura:

Coluna 1 Coluna 2 Coluna 3
M11 M12 0
M21 M22 0
OffsetX OffsetY 1

Os membros na última linha, OffsetX e OffsetY, representam valores de tradução.

Em métodos e propriedades, a matriz de transformação é geralmente especificada como um vetor com apenas seis membros, da seguinte forma:

(M11, M12, M21, M22, OffsetX, ) OffsetY

Embora possa usar uma estrutura Matrix diretamente para traduzir pontos individuais, ou com um MatrixTransform para transformar objetos, WPF também fornece um conjunto de classes que permitem transformar objetos sem trabalhar diretamente com matrizes: RotateTransform, ScaleTransform, SkewTransform e TranslateTransform.

Uso de atributos XAML

<object property="m11, m12, m21, m22, offsetX, offsetY"/>
- or -
<object property="Identity"/>

Valores XAML

m11System.Double

O valor na primeira linha e na primeira coluna deste Matrix. Para obter mais informações, consulte a propriedade M11.

M12System.Double

O valor na primeira linha e na segunda coluna. Para obter mais informações, consulte a propriedade M12.

M21System.Double

O valor na segunda linha e na primeira coluna. Para obter mais informações, consulte a propriedade M21.

M22System.Double

O valor na segunda linha e na segunda coluna. Para obter mais informações, consulte a propriedade M22.

offsetXSystem.Double

O valor na terceira linha e na primeira coluna. Para obter mais informações, consulte a propriedade OffsetX.

offsetYSystem.Double

O valor na terceira linha e na segunda coluna. Para obter mais informações, consulte a propriedade OffsetY.

Construtores

Name Description
Matrix(Double, Double, Double, Double, Double, Double)

Inicializa uma nova instância da Matrix estrutura.

Propriedades

Name Description
Determinant

Obtém o determinante desta Matrix estrutura.

HasInverse

Obtém um valor que indica se esta Matrix estrutura é invertível.

Identity

Obtém uma identidade Matrix.

IsIdentity

Obtém um valor que indica se esta Matrix estrutura é uma matriz identidade.

M11

Obtém ou define o valor da primeira linha e da primeira coluna desta Matrix estrutura.

M12

Obtém ou define o valor da primeira linha e da segunda coluna desta Matrix estrutura.

M21

Obtém ou define o valor da segunda linha e da primeira coluna desta Matrix estrutura.

M22

Obtém ou define o valor da segunda linha e da segunda coluna desta Matrix estrutura.

OffsetX

Obtém ou define o valor da terceira linha e da primeira coluna desta Matrix estrutura.

OffsetY

Obtém ou define o valor da terceira linha e da segunda coluna desta Matrix estrutura.

Métodos

Name Description
Append(Matrix)

Acrescenta a estrutura especificada Matrix a esta Matrix estrutura.

Equals(Matrix, Matrix)

Determina se as duas estruturas especificadas Matrix são idênticas.

Equals(Matrix)

Determina se a estrutura especificada Matrix é idêntica a esta instância.

Equals(Object)

Determina se a especificada Object é uma Matrix estrutura idêntica a esta Matrix.

GetHashCode()

Devolve o código hash desta Matrix estrutura.

Invert()

Inverte esta Matrix estrutura.

Multiply(Matrix, Matrix)

Multiplica uma Matrix estrutura por outra Matrix .

Parse(String)

Converte uma String representação de uma matriz na estrutura equivalente Matrix .

Prepend(Matrix)

Antepõe a estrutura especificada Matrix a esta Matrix estrutura.

Rotate(Double)

Aplica uma rotação do ângulo especificado em torno da origem desta Matrix estrutura.

RotateAt(Double, Double, Double)

Roda esta matriz em torno do ponto especificado.

RotateAtPrepend(Double, Double, Double)

Antepõe uma rotação do ângulo especificado no ponto especificado a esta Matrix estrutura.

RotatePrepend(Double)

Precede uma rotação do ângulo especificado a esta Matrix estrutura.

Scale(Double, Double)

Adiciona o vetor de escala especificado a esta Matrix estrutura.

ScaleAt(Double, Double, Double, Double)

Escala isto Matrix pela quantidade especificada em torno do ponto especificado.

ScaleAtPrepend(Double, Double, Double, Double)

Precede a escala especificada em torno do ponto especificado deste Matrix.

ScalePrepend(Double, Double)

Precede o vetor de escala especificado a esta Matrix estrutura.

SetIdentity()

Transforma esta Matrix estrutura numa matriz identidade.

Skew(Double, Double)

Adiciona um enviesamento dos graus especificados nas dimensões x e y a esta Matrix estrutura.

SkewPrepend(Double, Double)

Antepõe um distorso dos graus especificados nas dimensões x e y a esta Matrix estrutura.

ToString()

Cria uma String representação desta Matrix estrutura.

ToString(IFormatProvider)

Cria uma String representação desta Matrix estrutura com informação de formatação específica para cada cultura.

Transform(Point)

Transforma o ponto especificado pelo Matrix e devolve o resultado.

Transform(Point[])

Transforma os pontos especificados por este Matrix.

Transform(Vector)

Transforma o vetor especificado por este Matrix.

Transform(Vector[])

Transforma os vetores especificados por este Matrix.

Translate(Double, Double)

Acrescenta uma tradução dos deslocamentos especificados a esta Matrix estrutura.

TranslatePrepend(Double, Double)

Antepõe uma tradução dos deslocamentos especificados para esta Matrix estrutura.

Operadores

Name Description
Equality(Matrix, Matrix)

Determina se as duas estruturas especificadas Matrix são idênticas.

Inequality(Matrix, Matrix)

Determina se as duas estruturas especificadas Matrix não são idênticas.

Multiply(Matrix, Matrix)

Multiplica uma Matrix estrutura por outra Matrix .

Implementações de Interface Explícita

Name Description
IFormattable.ToString(String, IFormatProvider)

Formata o valor da instância atual usando o formato especificado.

Aplica-se a

Ver também