Matrix Struktura
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Představuje 3x3 affine transformační matici použitou pro transformace v 2D prostoru.
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
- Dědičnost
- Atributy
- Implementuje
Poznámky
Matice 3x3 se používá pro transformace v 2D rovině x-y. Matice affinových transformací lze vynásobit, aby vytvořily libovolný počet lineárních transformačních matic, jako je otočení a smyk, následované překladem. Matice transformace affinu má svůj konečný sloupec rovnou (0, 0, 1), takže je potřeba zadat pouze členy v prvních dvou sloupcích. Všimněte si, že vektory jsou vyjádřeny jako vektory řádků, nikoli jako vektory sloupců.
WPF Matrix se ukládá pomocí pořadí hlavního řádku a má následující strukturu:
| Sloupec 1 | Sloupec 2 | Sloupec 3 |
|---|---|---|
| M11 | M12 | 0 |
| M21 | M22 | 0 |
| OffsetX | OffsetY | 1 |
Členové v posledním řádku OffsetX a OffsetYpředstavují hodnoty překladu.
V metodách a vlastnostech je matice transformace obvykle určena jako vektor s pouze šesti členy, a to následujícím způsobem:
(M11, , M21M12, M22, OffsetXOffsetY)
Ačkoli lze použít strukturu přímo k překladu Matrix jednotlivých bodů nebo k MatrixTransform transformaci objektů, WPF také poskytuje sadu tříd, které umožňují transformovat objekty bez přímé práce s maticemi: RotateTransform, ScaleTransform, SkewTransforma TranslateTransform.
Použití atributu XAML
<object property="m11, m12, m21, m22, offsetX, offsetY"/>
- or -
<object property="Identity"/>
Hodnoty XAML
Hodnota v prvním řádku a prvním sloupci tohoto Matrixsloupce . Další informace najdete ve vlastnosti M11.
Hodnota v prvním řádku a druhém sloupci. Další informace najdete ve vlastnosti M12.
Hodnota ve druhém řádku a prvním sloupci. Další informace najdete ve vlastnosti M21.
Hodnota ve druhém řádku a druhém sloupci. Další informace najdete ve vlastnosti M22.
OffsetxSystem.Double
Hodnota ve třetím řádku a prvním sloupci. Další informace najdete ve vlastnosti OffsetX.
offsetYSystem.Double
Hodnota ve třetím řádku a druhém sloupci. Další informace najdete ve vlastnosti OffsetY.
Konstruktory
| Name | Description |
|---|---|
| Matrix(Double, Double, Double, Double, Double, Double) |
Inicializuje novou instanci Matrix struktury. |
Vlastnosti
| Name | Description |
|---|---|
| Determinant |
Získá determinant této Matrix struktury. |
| HasInverse |
Získá hodnotu, která označuje, zda je tato Matrix struktura invertovatelná. |
| Identity |
Získá identitu Matrix. |
| IsIdentity |
Získá hodnotu, která označuje, zda tato Matrix struktura je matice identit. |
| M11 |
Získá nebo nastaví hodnotu prvního řádku a prvního sloupce této Matrix struktury. |
| M12 |
Získá nebo nastaví hodnotu prvního řádku a druhého sloupce této Matrix struktury. |
| M21 |
Získá nebo nastaví hodnotu druhého řádku a prvního sloupce této Matrix struktury. |
| M22 |
Získá nebo nastaví hodnotu druhého řádku a druhého sloupce této Matrix struktury. |
| OffsetX |
Získá nebo nastaví hodnotu třetího řádku a prvního sloupce této Matrix struktury. |
| OffsetY |
Získá nebo nastaví hodnotu třetího řádku a druhého sloupce této Matrix struktury. |
Metody
| Name | Description |
|---|---|
| Append(Matrix) | |
| Equals(Matrix, Matrix) |
Určuje, zda jsou dvě zadané Matrix struktury identické. |
| Equals(Matrix) |
Určuje, zda je zadaná Matrix struktura stejná jako tato instance. |
| Equals(Object) |
Určuje, zda je zadaná ObjectMatrix struktura, která je identická s tímto Matrix. |
| GetHashCode() |
Vrátí kód hash pro tuto Matrix strukturu. |
| Invert() |
Invertuje tuto Matrix strukturu. |
| Multiply(Matrix, Matrix) | |
| Parse(String) |
String Převede reprezentaci matice na ekvivalentní Matrix strukturu. |
| Prepend(Matrix) |
Předpendí zadanou Matrix strukturu na tuto Matrix strukturu. |
| Rotate(Double) |
Použije otočení zadaného úhlu o původu této Matrix struktury. |
| RotateAt(Double, Double, Double) |
Otočí tuto matici o zadaném bodu. |
| RotateAtPrepend(Double, Double, Double) |
Předpendá otočení zadaného úhlu v zadaném bodě této Matrix struktury. |
| RotatePrepend(Double) |
Předpendí otočení zadaného úhlu do této Matrix struktury. |
| Scale(Double, Double) |
Připojí k této Matrix struktuře zadaný vektor měřítka. |
| ScaleAt(Double, Double, Double, Double) |
Škáluje ji Matrix o zadanou částku o zadaném bodu. |
| ScaleAtPrepend(Double, Double, Double, Double) |
Předpendí zadané měřítko o zadaném bodu tohoto Matrix. |
| ScalePrepend(Double, Double) |
Předzálohuje zadaný vektor měřítka na tuto Matrix strukturu. |
| SetIdentity() |
Změní tuto Matrix strukturu na matici identit. |
| Skew(Double, Double) |
Připojí k této Matrix struktuře nerovnoměrnou distribuci zadaných stupňů v rozměrech x a y. |
| SkewPrepend(Double, Double) |
Předzálohuje nerovnoměrnou distribuci zadaných stupňů v rozměrech x a y této Matrix struktury. |
| ToString() | |
| ToString(IFormatProvider) |
Vytvoří reprezentaci String této Matrix struktury s informacemi o formátování specifické pro jazykovou verzi. |
| Transform(Point) |
Transformuje zadaný bod podle Matrix a vrátí výsledek. |
| Transform(Point[]) |
Transformuje zadané body tímto Matrixparametrem . |
| Transform(Vector) |
Transformuje zadaný vektor tímto Matrix. |
| Transform(Vector[]) |
Transformuje zadané vektory tímto Matrix. |
| Translate(Double, Double) |
Připojí k této Matrix struktuře překlad zadaných posunů. |
| TranslatePrepend(Double, Double) |
Předloží překlad zadaných posunů do této Matrix struktury. |
Operátory
| Name | Description |
|---|---|
| Equality(Matrix, Matrix) |
Určuje, zda jsou dvě zadané Matrix struktury identické. |
| Inequality(Matrix, Matrix) |
Určuje, zda dvě zadané Matrix struktury nejsou identické. |
| Multiply(Matrix, Matrix) |
Explicitní implementace rozhraní
| Name | Description |
|---|---|
| IFormattable.ToString(String, IFormatProvider) |
Naformátuje hodnotu aktuální instance pomocí zadaného formátu. |