Matrix Estrutura
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Representa uma matriz de transformação afim de 3 × 3 usada para transformações no espaço bidimensional.
public value class Matrix
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
struct Matrix
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
public struct Matrix
Public Structure Matrix
<Matrix .../>
- or -
<object property="m11,m12,m21,m22,offsetX,offsetY"/>
- or -
<object property="m11 m12 m21 m22 offsetX offsetY"/>
-or-
<object property="Identity"/>
- Herança
-
Matrix
- Atributos
Requisitos do Windows
Família de dispositivos |
Windows 10 (introduzida na 10.0.10240.0)
|
API contract |
Windows.Foundation.UniversalApiContract (introduzida na v1.0)
|
Exemplos
Este exemplo XAML define uma Matriz que fornece dados para um MatrixTransform aplicado a uma forma retangular. Nesse caso, a matriz combina um deslocamento (OffsetX e OffsetY) e uma distorção (M12). Observe que esse mesmo efeito poderia ter sido produzido combinando um TranslateTransform e um SkewTransform. Se usar uma única Matriz ou combinações de transformações discretas é uma questão de estilo de codificação; os resultados são idênticos.
<Rectangle Width="100" Height="100" Fill="Red">
<Rectangle.RenderTransform>
<MatrixTransform Matrix="1,0,0,1,200,0">
</MatrixTransform>
</Rectangle.RenderTransform>
</Rectangle>
Comentários
Uma matriz 3×3 é usada para transformações em um plano x-y bidimensional. Matrizes de transformação afins podem ser multiplicadas para formar qualquer número de transformações lineares, como rotação e distorção, seguidas de conversão. Uma matriz de transformação afim tem sua coluna final igual a (0, 0, 1), portanto, somente os membros nas duas primeiras colunas precisam ser especificados. Observe que os vetores são expressos como vetores de linha, não vetores de coluna.
Uma Matriz é armazenada usando a ordem de linha principal e tem a seguinte estrutura:
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 maneira: (M11, M12, M21, M22, OffsetX, OffsetY)
Embora você possa usar uma estrutura Matrix diretamente para traduzir pontos individuais ou com um MatrixTransform para transformar objetos, o Windows Runtime também fornece um conjunto de classes que podem transformar objetos sem trabalhar diretamente com matrizes:
As propriedades de uma Matriz podem ser animadas (como uma ou mais animações DoubleAnimation ou DoubleAnimationUsingKeyFrames).
Matrix é o valor da propriedade MatrixTransform.Matrix . Os tipos relacionados podem ser usados para matrizes de transformação no espaço tridimensional e, em seguida, usados para uma projeção. Consulte Matrix3D e Matrix3DProjection.
Projeções de linguagem e membros da Matriz
Se você estiver usando uma linguagem Microsoft .NET (C# ou Microsoft Visual Basic) ou em extensões de componente do Visual C++ (C++/CX), o Matrix terá membros que não são de dados disponíveis e seus membros de dados serão expostos como propriedades de leitura/gravação, não campos.
Se você estiver programando com C++ usando a WRL (Biblioteca de Modelos de Windows Runtime), somente os campos de membro de dados existirão como membros de Matrix e você não poderá usar os métodos ou propriedades do utilitário listados na tabela de membros. O código WRL pode acessar métodos utilitários semelhantes que existem na classe MatrixHelper .
Campos
M11 |
O valor da primeira linha e da primeira coluna dessa estrutura matrix. |
M12 |
O valor da primeira linha e da segunda coluna dessa estrutura Matrix. |
M21 |
O valor da segunda linha e da primeira coluna dessa estrutura matrix. |
M22 |
O valor da segunda linha e da segunda coluna dessa estrutura matrix. |
OffsetX |
Obtém ou define o valor da terceira linha e da primeira coluna dessa estrutura matrix. |
OffsetY |
Obtém ou define o valor da terceira linha e da segunda coluna dessa estrutura matrix. |