Partager via


Matrix Structure

Définition

Représente une matrice de transformation affine 3 × 3 utilisée pour les transformations dans un espace à deux dimensions.

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"/>
Héritage
Matrix
Attributs

Exemples

Cet exemple XAML définit une matrice qui fournit des données pour un MatrixTransform appliqué à une forme rectangulaire. Dans ce cas, la matrice combine un décalage (OffsetX et OffsetY ) et un décalage (M12. Notez que ce même effet aurait pu être produit en combinant un TranslateTransform et un SkewTransform. L’utilisation d’une matrice unique ou de combinaisons de transformations discrètes est une question de style de codage ; les résultats sont identiques.

<Rectangle Width="100" Height="100" Fill="Red">
    <Rectangle.RenderTransform>
        <MatrixTransform Matrix="1,0,0,1,200,0">
        </MatrixTransform>
    </Rectangle.RenderTransform>
</Rectangle>

Remarques

Une matrice 3×3 est utilisée pour les transformations dans un plan x-y à deux dimensions. Les matrices de transformations affines peuvent être multipliées pour former un nombre quelconque de transformations linéaires, par exemple la rotation et l’inclinaison, puis la translation. Une matrice de transformation affine a sa colonne finale égale à (0, 0, 1). Par conséquent, seuls les membres des deux premières colonnes doivent être spécifiés. Notez que les vecteurs sont exprimés sous forme de vecteurs de ligne, et non de vecteurs de colonne.

Une matrice est stockée à l’aide de l’ordre principal des lignes et a la structure suivante :

M11M120
M21M220
OffsetXOffsetY1

Les membres de la dernière ligne, OffsetX et OffsetY, représentent les valeurs de traduction.

Dans les méthodes et les propriétés, la matrice de transformation est généralement spécifiée en tant que vecteur avec seulement six membres, comme suit : (M11, M12, M21, M22, OffsetX, OffsetY)

Bien que vous puissiez utiliser une structure Matrix directement pour traduire des points individuels, ou avec un MatrixTransform pour transformer des objets, le Windows Runtime fournit également un ensemble de classes qui peuvent transformer des objets sans travailler directement avec des matrices :

Les propriétés d’une matrice peuvent être animées (sous la forme d’une ou plusieurs animations DoubleAnimation ou DoubleAnimationUsingKeyFrames).

Matrix est la valeur de propriété de la propriété MatrixTransform.Matrix . Les types connexes peuvent être utilisés pour les matrices de transformation dans un espace en trois dimensions, puis utilisés pour une projection. Consultez Matrix3D et Matrix3DProjection.

Projections de langage et membres de Matrix

Si vous utilisez un langage Microsoft .NET (C# ou Microsoft Visual Basic), ou dans des extensions de composants Visual C++ (C++/CX), Matrix dispose de membres non-données disponibles, et ses membres de données sont exposés en tant que propriétés en lecture-écriture, et non en tant que champs.

Si vous programmez en C++ à l’aide de la bibliothèque de modèles Windows Runtime (WRL), seuls les champs membres de données existent en tant que membres de Matrix et vous ne pouvez pas utiliser les méthodes ou propriétés de l’utilitaire répertoriées dans la table members. Le code WRL peut accéder à des méthodes utilitaires similaires qui existent sur la classe MatrixHelper .

Champs

M11

Valeur de la première ligne et de la première colonne de cette structure matrix.

M12

Valeur de la première ligne et de la deuxième colonne de cette structure matrix.

M21

Valeur de la deuxième ligne et de la première colonne de cette structure matrix.

M22

Valeur de la deuxième ligne et de la deuxième colonne de cette structure matrix.

OffsetX

Obtient ou définit la valeur de la troisième ligne et de la première colonne de cette structure matrix.

OffsetY

Obtient ou définit la valeur de la troisième ligne et de la deuxième colonne de cette structure Matrix.

S’applique à