Matrix Estrutura
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
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
- 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
O valor na primeira linha e na primeira coluna deste Matrix. Para obter mais informações, consulte a propriedade M11.
O valor na primeira linha e na segunda coluna. Para obter mais informações, consulte a propriedade M12.
O valor na segunda linha e na primeira coluna. Para obter mais informações, consulte a propriedade M21.
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) | |
| 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() | |
| 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) |
Implementações de Interface Explícita
| Name | Description |
|---|---|
| IFormattable.ToString(String, IFormatProvider) |
Formata o valor da instância atual usando o formato especificado. |