Matrix Structure

Définition

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

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 une matrice appliquée à une forme rectangulaire. Dans ce cas, la matrice combine un décalage (OffsetX et OffsetY et un asymétrie (M12). Notez que ce même effet peut avoir été 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 transformation affine peuvent être multipliées pour effectuer un ensemble de transformations linéaires telles que la rotation et le cisaillement, suivies de la translation. Une matrice de transformation affine a sa colonne finale égale à (0, 0, 1), de sorte que 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 de ligne 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 comme 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, l’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 associés peuvent être utilisés pour les matrices de transformation dans un espace tridimensionnel, 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#), 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 avec 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 utilitaires répertoriées dans la table des membres. Le code WRL peut accéder à des méthodes utilitaires similaires qui existent sur la classe MatrixHelper .

Champs

Nom Description
M11

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

M12

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

M21

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

M22

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

OffsetX

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

OffsetY

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

S’applique à