Der kleine SVG-Rechner online

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

    skewX(45) = rotate(90−α) · scale(Φ, 1/Φ) · rotate(−α)

mit dem Goldenen Schnitt Φ und tan(α)=Φ.


JavaScript muss aktiviert sein.


d = Anzahl Stellen zum Runden: ε = 10−d.


Zeichenerklärung
Wirkung auf die Gesamtabbildung:
  • 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