Share 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(Microsoft.UI.Xaml.WinUIContract, 65536)]
struct Matrix
[Windows.Foundation.Metadata.ContractVersion(typeof(Microsoft.UI.Xaml.WinUIContract), 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

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