Sdílet prostřednictvím


Matrix Struktura

Definice

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
Matrix
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)

Připojí zadanou Matrix strukturu k této Matrix struktuře.

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)

Vynásobí Matrix strukturu jinou Matrix strukturou.

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()

String Vytvoří reprezentaci této Matrix struktury.

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)

Vynásobí Matrix strukturu jinou Matrix strukturou.

Explicitní implementace rozhraní

IFormattable.ToString(String, IFormatProvider)

Formátuje hodnotu aktuální instance pomocí zadaného formátu.

Platí pro

Viz také