Condividi tramite


Matrix Struct

Definizione

Rappresenta una matrice di trasformazione affine 3x3 usata per le trasformazioni nello spazio 2D.

public value class Matrix : IFormattable
[System.ComponentModel.TypeConverter(typeof(System.Windows.Media.MatrixConverter))]
[System.Serializable]
public struct Matrix : IFormattable
[System.ComponentModel.TypeConverter(typeof(System.Windows.Media.MatrixConverter))]
public struct Matrix : IFormattable
[<System.ComponentModel.TypeConverter(typeof(System.Windows.Media.MatrixConverter))>]
[<System.Serializable>]
type Matrix = struct
    interface IFormattable
[<System.ComponentModel.TypeConverter(typeof(System.Windows.Media.MatrixConverter))>]
type Matrix = struct
    interface IFormattable
Public Structure Matrix
Implements IFormattable
Ereditarietà
Matrix
Attributi
Implementazioni

Commenti

Una matrice 3x3 viene usata per le trasformazioni in un piano x-y 2D. 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.

Un WPF Matrix viene archiviato 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 Matrix struttura per convertire singoli punti o con un MatrixTransform oggetto per trasformare gli oggetti, WPF fornisce anche un set di classi che consentono di trasformare gli oggetti senza utilizzare direttamente matrici: RotateTransform, ScaleTransform, SkewTransforme TranslateTransform.

Uso della sintassi XAML per gli attributi

<object property="m11, m12, m21, m22, offsetX, offsetY"/>  
- or -  
<object property="Identity"/>  

Valori XAML

m11
System.Double

Valore nella prima riga e nella prima colonna di questo Matrixoggetto . Per altre informazioni, vedere la proprietà M11.

m12
System.Double

Valore nella prima riga e nella seconda colonna. Per altre informazioni, vedere la proprietà M12.

m21
System.Double

Valore nella seconda riga e nella prima colonna. Per altre informazioni, vedere la proprietà M21.

m22
System.Double

Valore nella seconda riga e nella seconda colonna. Per altre informazioni, vedere la proprietà M22.

offsetX
System.Double

Valore nella terza riga e nella prima colonna. Per altre informazioni, vedere la proprietà OffsetX.

Offsety
System.Double

Valore nella terza riga e nella seconda colonna. Per altre informazioni, vedere la proprietà OffsetY.

Costruttori

Matrix(Double, Double, Double, Double, Double, Double)

Inizializza una nuova istanza della struttura Matrix.

Proprietà

Determinant

Ottiene il determinante della struttura Matrix.

HasInverse

Ottiene un valore che indica se questa struttura Matrix è invertibile o meno.

Identity

Ottiene una struttura Matrix di identità.

IsIdentity

Ottiene un valore che indica se la struttura Matrix è una matrice di identità o meno.

M11

Ottiene o imposta il valore della prima riga e della prima colonna della struttura Matrix.

M12

Ottiene o imposta il valore della prima riga e della seconda colonna della struttura Matrix.

M21

Ottiene o imposta il valore della seconda riga e della prima colonna della struttura Matrix.

M22

Ottiene o imposta il 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.

Metodi

Append(Matrix)

Accoda la struttura Matrix specificata alla struttura Matrix corrente.

Equals(Matrix)

Determina se la struttura Matrix specificata è uguale o meno a questa istanza.

Equals(Matrix, Matrix)

Determina se le due strutture Matrix specificate sono identiche.

Equals(Object)

Determina se l'oggetto Object specificato è o meno una struttura Matrix identica alla struttura Matrix corrente.

GetHashCode()

Restituisce il codice hash di questa struttura Matrix.

Invert()

Inverte la struttura Matrix.

Multiply(Matrix, Matrix)

Moltiplica una struttura Matrix per un'altra struttura Matrix.

Parse(String)

Converte una rappresentazione String di una matrice nella struttura Matrix equivalente.

Prepend(Matrix)

Antepone la struttura Matrix specificata alla struttura Matrix corrente.

Rotate(Double)

Applica una rotazione dell'angolo specificato intorno all'origine della struttura Matrix .

RotateAt(Double, Double, Double)

Ruota la matrice intorno al punto specificato.

RotateAtPrepend(Double, Double, Double)

Antepone alla struttura Matrix una rotazione dell'angolo specificato intorno al punto definito.

RotatePrepend(Double)

Antepone alla struttura Matrix una rotazione dell'angolo specificato.

Scale(Double, Double)

Accoda il vettore di ridimensionamento specificato alla struttura Matrix corrente.

ScaleAt(Double, Double, Double, Double)

Ridimensiona la struttura Matrix rispetto al punto specificato in base al valore definito.

ScaleAtPrepend(Double, Double, Double, Double)

Antepone il ridimensionamento specificato rispetto al punto definito di questa struttura Matrix.

ScalePrepend(Double, Double)

Antepone il vettore di ridimensionamento specificato alla struttura Matrix corrente.

SetIdentity()

Cambia la struttura Matrix in una matrice di identità.

Skew(Double, Double)

Accoda alla struttura Matrix un'inclinazione di gradi specificati nelle dimensioni x e y.

SkewPrepend(Double, Double)

Antepone alla struttura Matrix un'inclinazione di gradi specificati nelle dimensioni x e y.

ToString()

Crea una rappresentazione String di questa struttura Matrix.

ToString(IFormatProvider)

Crea una rappresentazione String della struttura Matrix con le informazioni di formattazione specifiche delle impostazioni cultura.

Transform(Point)

Trasforma il punto specificato mediante la struttura Matrix e restituisce il risultato.

Transform(Point[])

Trasforma i punti specificati mediante la struttura Matrix.

Transform(Vector)

Trasforma il vettore specificato mediante la struttura Matrix.

Transform(Vector[])

Trasforma i vettori specificati mediante la struttura Matrix.

Translate(Double, Double)

Accoda alla struttura Matrix una traslazione degli offset specificati.

TranslatePrepend(Double, Double)

Antepone alla struttura Matrix una traslazione degli offset specificati.

Operatori

Equality(Matrix, Matrix)

Determina se le due strutture Matrix specificate sono identiche.

Inequality(Matrix, Matrix)

Determina se le due strutture Matrix specificate non sono identiche.

Multiply(Matrix, Matrix)

Moltiplica una struttura Matrix per un'altra struttura Matrix.

Implementazioni dell'interfaccia esplicita

IFormattable.ToString(String, IFormatProvider)

Formatta il valore dell'istanza corrente usando il formato specificato.

Si applica a

Vedi anche