Matrix Struct-datatyp
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
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
- 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
Värdet i den första raden och den första kolumnen i den här Matrix. För mer information, se egenskapen M11.
Värdet i den första raden och den andra kolumnen. För mer information, se egenskapen M12.
Värdet i den andra raden och den första kolumnen. För mer information, se egenskapen M21.
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. |