Promotic

transform - metoda obiektu CanvasCtx

Opis:
Zastąpi bieżącą macierz transformacji inną.
Składnia:
Object transform(Long a, Long b, Long c, Long d, Long e, Long f)
Parametry:
a(Long) (domyślnie 1) Pozioma proporcja rysowania
b(Long) (domyślnie 0) Poziomy skos rysowania
c(Long) (domyślnie 0) Pionowy skos rysowania
d(Long) (domyślnie 1) Pionowa proporcja rysowania
e(Long) (domyślnie 0) Poziome przesunięcie rysowania
f(Long) (domyślnie 0) Pionowe przesunięcie rysowania
Notatka:
Transformacje pozwalają odwzorować pozycję z jednego układu współrzędnych do drugiego. Umożliwia to rysowanie identycznego kształtu do różnie zwiększonej/zmniejszonej, odwróconej, przesuniętej, lustrzanie odwróconej 2D powierzchni. Prostrzym jest transformacja współrzędnych 2D powierzchni aniżeli przeliczać współrzędne wszystkich obiektów dla uzyskania identycznego efektu. Wszystkie transformacje pozycji są zdefiniowane 6 zmiennymi wartościami a, b, c, d, e, f (z 9) macierzy tranformacji dla 2D powierzchni. Wartość domyślna nietransformowanej 2D powierzchni to 1, 0, 0, 1, 0, 0 (tzw. macierz jednostkowa). Macierz transformacji jest częścią składową powierczni do rysowania. Metody save oraz restore zapisują również taką macierz transformacji.
Metody transformacji transform, translate, scale lub rotate wpływają na niektóre (lub wszastkie) wartości macierzy transformacji. Każda z tych metod zachowuje bieżący ważny stan macierzy transformacji oraz do niej przeprowadzi swoją zmianę. To znaczy, że zmiany są kumulatywne oraz naliczają się.
Przeciwnie metoda transformacji setTransform najpierw ustawi bieżącą macierz transformacji na wartość domyślną a ponad nią przeprowadzi transformację transform. Jako jedyna z metod transformacji umożliwia wyzerować kumulowane transformacje oraz ustawić nową transformację bez kumulacji.

Metoda ta działa także w Web panelach.
Patrz również:
Przykład1:
Zmienna ctx reprezentuje obszar do rysowania (CanvasCtx). Ta jest ustawiana w karcie "Draw" na początku skryptu rysującego zdarzenia onDraw w następujący sposób:
 
var ctx = pEvent.GetCtx(1);
JavaScriptWybierz oraz skopiuj do schowka

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);
nie rotuj:
JavaScriptWybierz oraz skopiuj do schowka

ctx.transform(1, 0, 0, 1, 0, 0);
wlewo:
JavaScriptWybierz oraz skopiuj do schowka

ctx.transform(0, -1, 1, 0, 0, dy);
w dół:
JavaScriptWybierz oraz skopiuj do schowka

ctx.transform(-1, 0, 0, -1, dx, dy);
w prawo:
JavaScriptWybierz oraz skopiuj do schowka

ctx.transform(0, 1, -1, 0, dx, 0);
przewrócić:
JavaScriptWybierz oraz skopiuj do schowka

ctx.transform(-1, 0, 0, 1, dx, 0);
wlewo oraz przewrócić:
JavaScriptWybierz oraz skopiuj do schowka

ctx.transform(0, 1, 1, 0, 0, 0);
w dół oraz przewrócić:
JavaScriptWybierz oraz skopiuj do schowka

ctx.transform(1, 0, 0, -1, 0, dy);
w prawo oraz przewrócić:
JavaScriptWybierz oraz skopiuj do schowka

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

Historia:
Pm8.02.06: Wytworzono
© MICROSYS, spol. s r.o.