Matrix Struct
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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:
| M11 | M12 | 0 |
| M21 | M22 | 0 |
| OffsetX | OffsetY | 1 |
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. |