Matrix Struct

Definizione

Rappresenta una matrice di trasformazione 3 × 3 affine usata per le trasformazioni nello spazio bidimensionale. API WinUI 2 equivalente per UWP: Matrice (per WinUI nella SDK per app di Windows, vedere gli spazi dei nomi SDK per app di Windows).

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 esempio XAML definisce una matrice che fornisce dati per una MatrixTransform forma rettangolare applicata a una forma rettangolare. In questo caso, la matrice combina un offset (OffsetX e OffsetY) e una deviazione (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:

M11M120
M21M220
OffsetXOffsetY1

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 un MatrixTransform oggetto per trasformare gli oggetti, l'Windows Runtime fornisce anche un set di classi che possono trasformare gli oggetti senza lavorare direttamente con matrici:

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

Matrice è il valore MatrixTransform.Matrix della proprietà. I tipi correlati possono essere usati per matrici di trasformazione nello spazio tridimensionale e quindi usati per una proiezione. Controllare 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), Matrice 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 presenti nella MatrixHelper classe.

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.

Si applica a