Condividi tramite


Matrix Struct

Definizione

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:

M11M120
M21M220
OffsetXOffsetY1

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.

Si applica a