Popis

Třída Matrix představuje matici transformace, která určuje, jak se mají mapovat body z jednoho souřadnicového prostoru do druhého.

Na zobrazeném objektu můžete provádět různé grafické transformace, a to následující:

  • Nastavení vlastností objektu Matrix
  • Použití tohoto objektu Matrix u vlastnosti matice objektu Transform
  • Použití objektu Transform jako vlastnosti transformace zobrazeného objektu.

Tyto transformační funkce zahrnují posun (přemístění x a y), natočení a změnu velikosti.

Transformační matice

Tyto typy transformací jsou společně známy jako afinní transformace. Afinní transformace zachovávají rovnost čar při transformaci, takže rovnoběžné čáry zůstanou rovnoběžné.

Objekt transformační matice je matice o rozměrech 3 x 3 s následujícím obsahem:

| a c tx |
| b d ty |
| u v w  |

V tradičních transformačních maticích poskytují vlastnosti u, v a w další zvláštní možnosti. Třída matice funguje pouze v dvourozměrném prostoru. Vždy tedy předpokládá, že jsou hodnoty vlastnosti u a v 0.0 a hodnota w vlastnosti je 1.0. Efektivní hodnoty matice jsou následující:

| a c tx |
| b d ty |
| 0 0 1  |

Syntaxe

new flwebgl.geom.Matrix(values)

Parametry

NázevTypPopis
valuesčíslo[](volitelné) Pole definující hodnoty matice ve formátu [a b c d tx ty]. Nejsou-li hodnoty zadané, matice se nastaví na identitu.

Metody

clone()

Popis

    Tato metoda vrací klon instance Matrix.

Vrátí

  • Klon instance Matrix.
  • Typ – matice  

concat(matrix)

Popis

    Tato metoda zřetězí dodanou matici s aktuální maticí a efektivně zkombinuje geometrické efekty obou matic.

Parametry

Vrátí

  • Tuto matici. Je užitečná při řetězení volání metody.
  • Typ – matice  

Příklad

V tomto příkladu je ukázáno zřetězení matice natočení a matice změny měřítka.  

NázevTypPopis
matrixMatrix
Matice k násobení
var m1 = new flwebgl.geom.Matrix();
m1.rotate(45 * Math.PI / 180);

var m2 = new flwebgl.geom.Matrix();
m2.scale(2, 2);

m1.concat(m2);

copy(matrix)

Popis

    Tato metoda zkopíruje zadanou matici do této matice.

Parametry

Vrátí

  • Tuto matici. Je užitečná při řetězení volání metody.
  • Typ – matice  
NázevTypPopis
matrixMatrixMatice, ze které mají být zkopírovány vlastnosti

equals(mat)

Popis

    Tato metoda zkontroluje, zda má daná matice stejné hodnoty jako tato instance.

Parametry

Vrátí

  • Typ – booleovská hodnota
NázevTypPopis
matMatrixMatice k porovnání

getValues()

Popis

    Tato metoda vrátí hodnoty prvků v matici.

Vrátí

  • Pole definující hodnoty matice ve formátu [a b c d tx ty].
  • Typ –  číslo[]

Příklad

V tomto příkladu je znázorněno získání hodnot matice a jejich změna zkosením ve faktoru 0,5.

var m = new flwebgl.geom.Matrix();
var arr = m.getValues();
arr[1] = 0.5;
m.setValues(arr);

identity()

Popis

    Tato metoda nastaví matici na matici identity.

Vrátí

  • Tuto matici. Je užitečná při řetězení volání metody.
  • Typ – matice  

invert()

Popis

    Tato metoda převrátí matici. V důsledku toho převrácená matice použije opačnou transformaci.

Vrátí

  • Tuto matici. Je užitečná při řetězení volání metody.
  • Typ – matice  

isIdentity()

Popis

    Tato metoda vrátí hodnotu true, pokud je matice maticí identity.

Vrátí

  • Typ – booleovská hodnota

rotate(angle)

Popis

    Tato metoda u matice použije transformaci natočení.

Parametry

Vrátí

  • Tuto matici. Je užitečná při řetězení volání metody.
  • Typ – matice  

Příklad

V tomto příkladu je znázorněno vytvoření nové instance matice inicializované na matici identity a její natočení o 45 stupňů.

NázevTypPopis
anglečísloÚhel v radiánech. Pokud chcete používat stupně, vynásobte ji hodnotou Math.PI/180.
var m = new flwebgl.geom.Matrix();
m.rotate(45 * Math.PI / 180);

scale(x, y)

Popis

    Tato metoda u matice použije transformaci změny měřítka.

Parametry

Vrátí

  • Tuto matici. Je užitečná při řetězení volání metody.
  • Typ – matice  

Příklad

Tento příklad představuje vytvoření nové instance matice inicializované na matici identity a nastavení jejího měřítka o faktor 2 ve vodorovném i svislém směru.

NázevTypPopis
xčísloFaktor vodorovného měřítka.
yčísloFaktor svislého měřítka.
var m = new flwebgl.geom.Matrix();
m.scale(2, 2);

setValues(values)

Popis

    Tato metoda nastaví hodnoty prvků matice.

Parametry

Příklad

Viz příklad pro funkci getValues().

NázevTypPopis
values
číslo[]Pole, které definuje hodnoty matice ve formátu [a b c d tx ty].

transformPoint(point)

Popis

    Tato metoda transformuje bod podle této matice.

Parametry

Vrátí

  • Transformovaný bod.
  • Typ – bod
NázevTypPopis
pointPointBod k transformaci.

transformRect(rect)

Popis

    Tato metoda transformuje všechny čtyři body obdélníku podle této matice.

Parametry

Vrátí

  • Transformovaný obdélník.
  • Typ – obdélník
NázevTypPopis
rectRect
Obdélník k transformaci.

translate(dx, dy)

Popis

    Tato metoda převádí matici na osy x a y.

Parametry

Vrátí

  • Tuto matici. Je užitečná při řetězení volání metody.
  • Typ – matice  
NázevTypPopis
dxčísloMnožství pohybu doprava podél osy X.
dyčísloMnožství pohybu dolů podél osy Y.

Tato práce podléhá licenci Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License.  Na příspěvky ze služeb Twitter™ a Facebook se nevztahují podmínky licence Creative Commons.

Právní upozornění   |   Zásady ochrany osobních údajů online