Condividi tramite


Matrix Struct

Definizione

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:

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 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.

Si applica a