Mit diesem Rechner können Transformationen für SVG-Dateien umgestellt oder in elementare Transformationen zerlegt werden.
Die Gesamt-Transformation M entsteht durch Hintereinanderausführung der Einzeltransformationen:
M = M0·M1·...·M8
Das Ergenbis v' der Transformation für einen Punkt bzw. Vektor v ist dabei
v' = M(v) = M·v
d.h. die Teil-Transformation mit dem größten Index wird (aus der Sicht von v) zuerst angewendet. Beispiel: Die Scherabbildung skewX(45) lässt sich darstellen als
Grün hinterlegte Aktionen verändern die Gesamtabbildung nicht.
Damit die Aktion ausgeführt werden kann, muß die Matrix in dem Feld u.U.
invertierbar sein. Zudem müssen links bzw. rechts genügend
viele freie Felder sein, um die Ergebnisse ablegen zu können ohne darin enthaltene
Werte zu überschreiben.
Rot hinterlegte Aktionen verändern i.d.R die Gesamtabbildung.
Z.B. ändert das Vertauschen zweier Matrizen mit
oder
i.d.R. die
Gesamtabbildung, weil Matrixmultiplikation i.d.R. nicht kommutativ ist.
Ausgegraute Buttons sind inaktiv
Schreibt die Einheitsmatrix (E) in das Feld
Rundet die Matrix-Elemente auf d Stellen
Invertiert die Matrix, d.h. ersetzt die Abbildung durch ihre Umkehrabbildung
Spaltet den translatorischen Anteil nach links bzw. rechts ab
Verschiebt die Matrix nach links bzw. rechts. Die Abbildung links/rechts
kommt ins aktuelle Feld und wird so angepasst, daß die Gesamtabbildung gleich
bleibt
Vertauscht die Matrix mit der Matrix darüber bzw. darunter
Matrixmultiplikation: Verschmilzt diese Abbildung mit der Abbildung links bzw. rechts
Spaltet die Abbildung auf in
T = Translation ("translate")
R = Rotation ("rotate")
X = Scherung in x-Richtung ("skewX")
S = Skalierung ("scale")
I.w. handelt es sich dabei um die QR-Zerlegung der Matrix.
Spaltet die Abbildung auf in
T = Translation ("translate")
R1 = Rotation 1 ("rotate")
S = Skalierung ("scale")
R2 = Rotation 2 ("rotate")
I.w. handelt es sich dabei um eine Singulärwert-Zerlegung der Matrix.
Unterstützte SVG-Transformationen
rotate(φ)
Rotiert um φ° im Uhrzeigersinn
rotate(φ x y)
Rotiert φ° im Uhrzeigersinn um den Punkt (x,y)
translate(x y)
Verschiebt in x- und y-Richtung
scale(x y)
Dehnt um den Faktor x in x-Richtung und um den Faktor y in y-Richtung
scale(s)
Selbe Dehnung s in x- und y-Richtung
skewX(φ)
Schert in x-Richtung. Die x-Achse bleibt unverändert,
die y-Achse wird im φ° nach rechts geschert. Dadurch wird die y-Achse
um den Faktor 1/cos(φ) länger. Ein Punkt mit y-Koordinate y wandert um y·tan(φ) in x-Richtung. Seine y-Koordinate bleibt unverändert.
skewY(φ)
Schert in y-Richtung. Die y-Achse bleibt unverändert,
die x-Achse wird im φ° geschert. Dadurch wird die x-Achse
um den Faktor 1/cos(φ) länger. Ein Punkt mit x-Koordinate x wandert um x·tan(φ) in y-Richtung. Seine x-Koordinate bleibt unverändert.
matrix(a b c d e f)
Direkte Eingabe der Transformation. Die neuen Koordinaten berechnen sich gemäß
x' = a·x + c·y + e
y' = b·x + d·y + f