Matrix Struct-datatyp

Definition

Representerar en 3x3 affinformningsmatris som används för transformeringar i 2D-utrymme.

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
Arv
Matrix
Attribut
Implementeringar

Kommentarer

En 3x3-matris används för transformeringar i ett 2D x-y-plan. Affintransformationsmatriser kan multipliceras så att de bildar valfritt antal linjära transformeringar, till exempel rotation och skevhet (skjuvning), följt av översättning. En affintransformeringsmatris har sin sista kolumn lika med (0, 0, 1), så endast medlemmarna i de två första kolumnerna behöver anges. Observera att vektorer uttrycks som radvektorer, inte kolumnvektorer.

En WPF Matrix lagras med rad-större ordning och har följande struktur:

Kolumn 1 Kolumn 2 Kolumn 3
M11 M12 0
M21 M22 0
OffsetX OffsetY 1

Medlemmarna på den sista raden, OffsetX och OffsetY, representerar översättningsvärden.

I metoder och egenskaper anges transformeringsmatrisen vanligtvis som en vektor med endast sex medlemmar, enligt följande:

(M11, M12, M21, M22, OffsetX, OffsetY)

Även om du kan använda en Matrix struktur direkt för att översätta enskilda punkter, eller med en MatrixTransform för att transformera objekt tillhandahåller WPF också en uppsättning klasser som gör att du kan transformera objekt utan att arbeta direkt med matriser: RotateTransform, ScaleTransform, SkewTransform och TranslateTransform.

XAML-attributanvändning

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

XAML-värden

m11System.Double

Värdet i den första raden och den första kolumnen i den här Matrix. För mer information, se egenskapen M11.

m12System.Double

Värdet i den första raden och den andra kolumnen. För mer information, se egenskapen M12.

m21System.Double

Värdet i den andra raden och den första kolumnen. För mer information, se egenskapen M21.

m22System.Double

Värdet i den andra raden och den andra kolumnen. För mer information, se egenskapen M22.

offsetXSystem.Double

Värdet i den tredje raden och den första kolumnen. För mer information, se egenskapen OffsetX.

offsetYSystem.Double

Värdet i den tredje raden och den andra kolumnen. För mer information, se egenskapen OffsetY.

Konstruktorer

Name Description
Matrix(Double, Double, Double, Double, Double, Double)

Initierar en ny instans av Matrix strukturen.

Egenskaper

Name Description
Determinant

Hämtar den här Matrix strukturens determinant.

HasInverse

Hämtar ett värde som anger om den här Matrix strukturen är inverterbar.

Identity

Hämtar en identitet Matrix.

IsIdentity

Hämtar ett värde som anger om den här Matrix strukturen är en identitetsmatris.

M11

Hämtar eller anger värdet för den första raden och den första kolumnen i den här Matrix strukturen.

M12

Hämtar eller anger värdet för den första raden och den andra kolumnen i den här Matrix strukturen.

M21

Hämtar eller anger värdet för den andra raden och den första kolumnen i den här Matrix strukturen.

M22

Hämtar eller anger värdet för den andra raden och den andra kolumnen i den här Matrix strukturen.

OffsetX

Hämtar eller anger värdet för den tredje raden och den första kolumnen i den här Matrix strukturen.

OffsetY

Hämtar eller anger värdet för den tredje raden och den andra kolumnen i den här Matrix strukturen.

Metoder

Name Description
Append(Matrix)

Lägger till den angivna Matrix strukturen i den här Matrix strukturen.

Equals(Matrix, Matrix)

Avgör om de två angivna Matrix strukturerna är identiska.

Equals(Matrix)

Avgör om den angivna Matrix strukturen är identisk med den här instansen.

Equals(Object)

Avgör om den angivna Object är en Matrix struktur som är identisk med den här Matrix.

GetHashCode()

Returnerar hash-koden för den här Matrix strukturen.

Invert()

Invertera den här Matrix strukturen.

Multiply(Matrix, Matrix)

Multiplicerar en Matrix struktur med en annan Matrix struktur.

Parse(String)

Konverterar en String representation av en matris till motsvarande Matrix struktur.

Prepend(Matrix)

Förbereder den angivna Matrix strukturen på den här Matrix strukturen.

Rotate(Double)

Tillämpar en rotation av den angivna vinkeln om strukturens Matrix ursprung.

RotateAt(Double, Double, Double)

Roterar den här matrisen om den angivna punkten.

RotateAtPrepend(Double, Double, Double)

Förbereder en rotation av den angivna vinkeln vid den angivna punkten till den här Matrix strukturen.

RotatePrepend(Double)

Förbereder en rotation av den angivna vinkeln för den här Matrix strukturen.

Scale(Double, Double)

Lägger till den angivna skalningsvektorn i den här Matrix strukturen.

ScaleAt(Double, Double, Double, Double)

Skalar detta Matrix efter den angivna mängden om den angivna punkten.

ScaleAtPrepend(Double, Double, Double, Double)

Förbereder den angivna skalan om den angivna punkten i den här Matrix.

ScalePrepend(Double, Double)

Förbereder den angivna skalningsvektorn för den här Matrix strukturen.

SetIdentity()

Ändrar den här Matrix strukturen till en identitetsmatris.

Skew(Double, Double)

Lägger till en skevhet av de angivna graderna i x- och y-dimensionerna i den här Matrix strukturen.

SkewPrepend(Double, Double)

Förbereder en skevhet av de angivna graderna i x- och y-dimensionerna till den här Matrix strukturen.

ToString()

Skapar en String representation av den här Matrix strukturen.

ToString(IFormatProvider)

Skapar en String representation av den här Matrix strukturen med kulturspecifik formateringsinformation.

Transform(Point)

Transformerar den angivna punkten med Matrix och returnerar resultatet.

Transform(Point[])

Transformerar de angivna punkterna med den här Matrix.

Transform(Vector)

Transformerar den angivna vektorn med den här Matrix.

Transform(Vector[])

Transformerar angivna vektorer med den här Matrix.

Translate(Double, Double)

Lägger till en översättning av de angivna förskjutningarna till den här Matrix strukturen.

TranslatePrepend(Double, Double)

Förbereder en översättning av de angivna förskjutningarna till den här Matrix strukturen.

Operatorer

Name Description
Equality(Matrix, Matrix)

Avgör om de två angivna Matrix strukturerna är identiska.

Inequality(Matrix, Matrix)

Avgör om de två angivna Matrix strukturerna inte är identiska.

Multiply(Matrix, Matrix)

Multiplicerar en Matrix struktur med en annan Matrix struktur.

Explicita gränssnittsimplementeringar

Name Description
IFormattable.ToString(String, IFormatProvider)

Formaterar värdet för den aktuella instansen med det angivna formatet.

Gäller för

Se även