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 afinovou transformační matici 3x3, která se používá pro transformace v prostorovém 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 rovině 2D x y. Matice afinové transformace lze vynásobit, aby vytvořily libovolný počet lineárních transformací, jako je otočení a zkosení (smyk), následované překladem. Matice afinové transformace má poslední sloupec roven (0, 0, 1), takže je tř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á podle pořadí hlavního řádku a má následující strukturu:
M11 | M12 | 0 |
M21 | M22 | 0 |
OffsetX | OffsetY | 1 |
Členy 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, M12, M21, M22, OffsetX, OffsetY)
I když můžete 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
M11
System.Double
Hodnota v prvním řádku a prvním sloupci tohoto Matrixsouboru . Další informace najdete ve M11 vlastnosti .
M12
System.Double
Hodnota v prvním řádku a druhém sloupci. Další informace najdete ve M12 vlastnosti .
m21
System.Double
Hodnota v druhém řádku a prvním sloupci. Další informace najdete ve M21 vlastnosti .
m22
System.Double
Hodnota ve druhém řádku a ve druhém sloupci. Další informace najdete ve M22 vlastnosti .
Offsetx
System.Double
Hodnota ve třetím řádku a prvním sloupci. Další informace najdete ve OffsetX vlastnosti .
offsetY
System.Double
Hodnota ve třetím řádku a druhém sloupci. Další informace najdete ve OffsetY vlastnosti .
Konstruktory
Matrix(Double, Double, Double, Double, Double, Double) |
Inicializuje novou instanci Matrix struktury. |
Vlastnosti
Determinant |
Získá determinant této Matrix struktury. |
HasInverse |
Získá hodnotu, která označuje, zda je tato Matrix struktura invertibilní. |
Identity |
Získá identitu Matrix. |
IsIdentity |
Získá hodnotu, která označuje, zda je tato Matrix struktura 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
Append(Matrix) | |
Equals(Matrix) |
Určuje, zda je zadaná Matrix struktura shodná s touto instancí. |
Equals(Matrix, Matrix) |
Určuje, zda jsou dvě zadané Matrix struktury identické. |
Equals(Object) |
Určuje, zda je Matrix zadaná Object struktura, která je shodná s tímto Matrixobjektem . |
GetHashCode() |
Vrátí kód hash pro tuto Matrix strukturu. |
Invert() |
Invertuje tuto Matrix strukturu. |
Multiply(Matrix, Matrix) | |
Parse(String) |
Převede reprezentaci String matice na ekvivalentní Matrix strukturu. |
Prepend(Matrix) |
Předpřidá zadanou Matrix strukturu do této Matrix struktury. |
Rotate(Double) |
Použije otočení zadaného úhlu o počátku této Matrix struktury. |
RotateAt(Double, Double, Double) |
Otočí tuto matici o zadaný bod. |
RotateAtPrepend(Double, Double, Double) |
Předpena otočení zadaného úhlu v zadaném bodě do této Matrix struktury. |
RotatePrepend(Double) |
Předpena rotace zadaného úhlu k této Matrix struktuře. |
Scale(Double, Double) |
Připojí zadaný vektor měřítka k této Matrix struktuře. |
ScaleAt(Double, Double, Double, Double) |
Škáluje ji Matrix o zadanou hodnotu přibližně v zadaném bodě. |
ScaleAtPrepend(Double, Double, Double, Double) |
Předpendá zadané měřítko o zadaném bodu tohoto Matrix. |
ScalePrepend(Double, Double) |
Předpřidá zadaný vektor měřítka do této Matrix struktury. |
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ředkládá zkosenost zadaných stupňů v rozměrech x a y k této Matrix struktuře. |
ToString() | |
ToString(IFormatProvider) |
String Vytvoří reprezentaci této Matrix struktury s informacemi o formátování specifické pro jazykovou verzi. |
Transform(Point) |
Transformuje zadaný bod pomocí Matrix a vrátí výsledek. |
Transform(Point[]) |
Transformuje zadané body tímto Matrix. |
Transform(Vector) |
Transformuje zadaný vektor pomocí tohoto Matrixparametru . |
Transform(Vector[]) |
Transformuje zadané vektory pomocí tohoto Matrixobjektu . |
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
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í
IFormattable.ToString(String, IFormatProvider) |
Formátuje hodnotu aktuální instance pomocí zadaného formátu. |