Promotic
Přihlášení logon

transform - metoda objektu CanvasCtx

Popis:
Nahradí současnou transformační matici jinou.
Syntaxe:
Object transform(Long a, Long b, Long c, Long d, Long e, Long f)
Parametry:
a(Long) (přednastaveno 1) Vodorovný poměr kreslení
b(Long) (přednastaveno 0) Vodorovné zkosení kreslení
c(Long) (přednastaveno 0) Svislé zkosení kreslení
d(Long) (přednastaveno 1) Svislý poměr kreslení
e(Long) (přednastaveno 0) Vodorovný posun kreslení
f(Long) (přednastaveno 0) Svislý posun kreslení
Poznámka:
Transformace umožňují mapovat pozice z jednoho souřadnicového systému do jiného. Umožňuje kreslení stejného tvaru do různě zvětšeného/zmenšeného, otočeného, posunutého, zrcadlově otočeného 2D prostoru. Je jednodušší transformovat souřadnice 2D prostoru než přepočítavat souřadnice všech objektů pro dosažení stejného efektu. Veškeré transformace pozic jsou definovány 6 měnitelnými hodnotami a, b, c, d, e, f (z celkem 9) transformační matice pro 2D prostor. Výchozí hodnota netransformovaného 2D prostoru je 1, 0, 0, 1, 0, 0 (tzv. jednotková matice). Transformační matice je součástí kreslící plochy. Metody save a restore ukládají i tuto transformační matici.
Transformační metody transform, translate, scale nebo rotate ovlivňují některou (nebo všechny) hodnotu transformační matice. Každá z těchto metod zachová platný aktuální stav transformační matice a do něj provede svojí změnu. To znamená, že změny jsou kumulativní a sčítají se.
Transformační metoda setTransform naproti tomu nejprve nastaví právě platnou transformační matici na výchozí hodnotu a nad ní provede transformaci transform. Jako jediná z transformačních metod umožňuje vynulovat kumulované transformace a nastavit novou transformaci bez kumulace.

Tato metoda je funkční i ve Web obrazech.

Graficky znázorněné transformační příklady na wikimedia.org: https://commons.wikimedia.org/wiki/File:2D_affine_transformation_matrix.svg
Viz také:
Příklad1:
Proměnná ctx reprezentuje kreslící plochu (CanvasCtx). Ta se nastaví v kartě "Draw" na začátku skriptu kreslící události onDraw následovně:
 
var ctx = pEvent.GetCtx(1);
JavaScriptVyber a zkopíruj do schránky

ctx.fillStyle = "yellow";
ctx.fillRect(0, 0, 250, 100);

ctx.transform(1, 0.5, -0.5, 1, 30, 10);
ctx.fillStyle = "red";
ctx.fillRect(0, 0, 250, 100);

ctx.transform(1, 0.5, -0.5, 1, 30, 10);
ctx.fillStyle = "blue";
ctx.fillRect(0, 0, 250, 100);
neobracet:
JavaScriptVyber a zkopíruj do schránky

ctx.transform(1, 0, 0, 1, 0, 0);
vlevo:
JavaScriptVyber a zkopíruj do schránky

ctx.transform(0, -1, 1, 0, 0, dy);
dolů:
JavaScriptVyber a zkopíruj do schránky

ctx.transform(-1, 0, 0, -1, dx, dy);
vpravo:
JavaScriptVyber a zkopíruj do schránky

ctx.transform(0, 1, -1, 0, dx, 0);
převrátit:
JavaScriptVyber a zkopíruj do schránky

ctx.transform(-1, 0, 0, 1, dx, 0);
vlevo a převrátit:
JavaScriptVyber a zkopíruj do schránky

ctx.transform(0, 1, 1, 0, 0, 0);
dolů a převrátit:
JavaScriptVyber a zkopíruj do schránky

ctx.transform(1, 0, 0, -1, 0, dy);
vpravo a převrátit:
JavaScriptVyber a zkopíruj do schránky

ctx.transform(0, -1, -1, 0, dx, dy);

Historie:
Pm8.02.06: Vytvořeno
© MICROSYS, spol. s r.o.Update cookies preferences