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 3 × 3 affine usata 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 una matriceTransform applicata 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 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. Puoi moltiplicare matrici di trasformazioni affini per formare un numero qualsiasi di trasformazioni lineari, ad esempio rotazione e inclinazione (distorsione), seguite da traslazione. Una matrice di trasformazione affine ha la colonna finale uguale a (0, 0, 1), quindi è necessario specificare solo i membri nelle prime due colonne. Si noti che i vettori vengono espressi come vettori di righe, non vettori di colonna.
Una matrice viene archiviata usando l'ordine principale della 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 traduzione.
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)
Anche se è possibile usare una struttura Matrix direttamente per tradurre singoli punti o con matriceTransform per trasformare gli oggetti, l'Windows Runtime fornisce anche un set di classi che possono trasformare oggetti senza lavorare direttamente con matrici:
Le proprietà di una matrice possono essere animate (come una o più animazioni DoubleAnimation o DoubleAnimationUsingKeyFrames).
Matrice è il valore della proprietà MatrixTransform.Matrix . I tipi correlati possono essere usati per matrici di trasformazione nello spazio tridimensionale e quindi usati per una proiezione. Vedere Matrix3D e Matrix3DProjection.
Proiezioni del linguaggio e membri della matrice
Se si usa un linguaggio Microsoft .NET (C# o Microsoft Visual Basic) o nelle estensioni dei componenti di Visual C++ (C++/CX), Matrix dispone di membri non dati disponibili e i relativi membri dati vengono esposti come proprietà di lettura-scrittura, non campi.
Se si esegue la programmazione con C++ usando la libreria modelli di Windows Runtime (WRL), esistono solo i campi membro dati come membri di Matrice e non è possibile usare 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
M11 |
Valore della prima riga e della prima colonna di questa struttura Matrix. |
M12 |
Valore della prima riga e della seconda colonna di questa struttura Matrix. |
M21 |
Valore della seconda riga e della prima colonna di questa struttura Matrix. |
M22 |
Valore della seconda riga e della seconda colonna di questa struttura Matrix. |
OffsetX |
Ottiene o imposta il valore della terza riga e della prima colonna di questa struttura Matrix. |
OffsetY |
Ottiene o imposta il valore della terza riga e della seconda colonna di questa struttura Matrix. |