Matrix Struct

Definizione

Rappresenta una matrice di trasformazione affine 3 × 3 utilizzata per le trasformazioni nello spazio bidimensionale.

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"/>
Ereditarietà
Matrix
Attributi

Esempio

Questo esempio XAML definisce una matrice che fornisce dati per un oggetto MatrixTransform applicato a una forma rettangolare. In questo caso, la matrice combina un offset (OffsetX e OffsetY e un'asimmetria M12. Si noti che questo stesso effetto potrebbe essere stato prodotto combinando un TranslateTransform e un oggetto SkewTransform. Se usare una singola matrice o combinazioni di trasformazioni discrete è una questione di stile di codifica; i risultati sono identici.

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

Commenti

Una matrice 3×3 viene usata per le trasformazioni in un piano x-y bidimensionale. Le matrici di trasformazione affine possono essere moltiplicate per formare un qualsiasi numero di trasformazioni lineari, come la rotazione e l’inclinazione (shear), seguite dalla traslazione. Una matrice di trasformazione affine ha la colonna finale uguale a (0, 0, 1), quindi devono essere specificati solo i membri nelle prime due colonne. Si noti che i vettori sono espressi come vettori di riga, non come vettori di colonna.

Una matrice viene archiviata usando l'ordine principale di riga e ha la struttura seguente:

M11M120
M21M220
OffsetXOffsetY1

I membri dell'ultima riga, OffsetX e OffsetY, rappresentano i valori di conversione.

Nei metodi e nelle proprietà, la matrice di trasformazione viene in genere specificata come vettore con solo sei membri, come indicato di seguito: (M11, M12, M21, M22, OffsetX, OffsetY)

Sebbene sia possibile usare una struttura Matrix direttamente per convertire singoli punti o con MatrixTransform per trasformare gli oggetti, il Windows Runtime fornisce anche un set di classi in grado di trasformare gli oggetti senza utilizzare direttamente le matrici:

Le proprietà di una matrice possono essere animate (come una o più animazioni DoubleAnimation o DoubleAnimationUsingKeyFrames).

Matrix è il valore della proprietà Per la proprietà MatrixTransform.Matrix . I tipi correlati possono essere usati per le matrici di trasformazione nello spazio tridimensionale e quindi usate per una proiezione. Vedi Matrix3D e Matrix3DProjection.

Proiezioni del linguaggio e membri di Matrix

Se si usa un linguaggio di Microsoft .NET (C#), Matrix dispone di membri non dati disponibili e i relativi membri dati vengono esposti come proprietà di lettura/scrittura, non come campi.

Se si esegue la programmazione con C++ usando la libreria dei modelli di Windows Runtime (WRL), esistono solo i campi membro dati come membri di Matrix e non è possibile utilizzare i metodi di utilità o le proprietà elencate nella tabella dei membri. Il codice WRL può accedere a metodi di utilità simili esistenti nella classe MatrixHelper .

Campi

Nome Descrizione
M11

Valore della prima riga e della prima colonna della struttura Matrix.

M12

Valore della prima riga e della seconda colonna della struttura Matrix.

M21

Valore della seconda riga e della prima colonna della struttura Matrix.

M22

Valore della seconda riga e della seconda colonna della struttura Matrix.

OffsetX

Ottiene o imposta il valore della terza riga e della prima colonna della struttura Matrix.

OffsetY

Ottiene o imposta il valore della terza riga e della seconda colonna della struttura Matrix.

Si applica a