Sdílet prostřednictvím


Matrix Struktura

Definice

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

m11System.Double

Hodnota v prvním řádku a prvním sloupci tohoto Matrixsloupce . Další informace najdete ve vlastnosti M11.

m12System.Double

Hodnota v prvním řádku a druhém sloupci. Další informace najdete ve vlastnosti M12.

m21System.Double

Hodnota ve druhém řádku a prvním sloupci. Další informace najdete ve vlastnosti M21.

m22System.Double

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)

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

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)

Vynásobí strukturu jinou MatrixMatrix strukturou.

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

Vytvoří reprezentaci String této Matrix struktury.

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)

Vynásobí strukturu jinou MatrixMatrix strukturou.

Explicitní implementace rozhraní

Name Description
IFormattable.ToString(String, IFormatProvider)

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

Platí pro

Viz také