Partilhar via


Matrix Estrutura

Definição

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:

M11M120
M21M220
OffsetXOffsetY1

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.

Aplica-se a