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(Windows.Foundation.UniversalApiContract, 65536)]
struct Matrix
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 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
Requisiti Windows
Famiglia di dispositivi |
Windows 10 (è stato introdotto in 10.0.10240.0)
|
API contract |
Windows.Foundation.UniversalApiContract (è stato introdotto in v1.0)
|
Esempio
Questo codice XAML di esempio 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. 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 sono espressi come vettori di riga, non come 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 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 direttamente una struttura Matrix 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à 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 di Matrix
Se si usa un linguaggio Microsoft .NET (C# o Microsoft Visual Basic) o nelle estensioni del componente Visual C++ (C++/CX), Matrix include 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 Matrix e non è possibile usare i metodi di utilità o le proprietà elencati nella tabella 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 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. |