Information Technology Reference
In-Depth Information
context.setTransform(1,0,0,1,0,0);
}
};
Listing 5.2: Quellcode für die Transformationen der Abbildung 5.36
Sobald das Bild geladen ist, definieren wir den Rotationswinkel rotate mit 15°,
die Start- und Endskalierungen scaleStart mit 0.0 sowie scaleEnd mit 4.0 und
daraus abgeleitet das Inkrement für die Skalierung scaleInc mit dem Ziel, in-
nerhalb einer ganzen Umdrehung die Endskalierung 4.0 zu erreichen. In der
for -Schleife rotieren wir dann das Bild gegen den Uhrzeigersinn jeweils um
15°, skalieren es von 0.0 bis 4.0 und setzen seine linke obere Ecke auf die Ko-
ordinate 540/260.
Offen bleibt, was es mit der Methode setTransform() am Ende der for -Schleife
auf sich hat und um wen es sich bei dem Skispringer handelt, der sich wage-
mutig vom Taft Point in den Abgrund stürzt. Ersteres werden wir gleich klären,
Zweiteres wird sich erst bei einem Blick in den Quellcode des Beispiels auflö-
sen - Danke an Swiss-Ski.ch für das Zurverfügungstellen des Bildes ...
Neben den drei Grundtransformationen scale() , rotate() und translate()
stellt Canvas noch zwei weitere Methoden zur Veränderung des Koordinaten-
systems und damit der sogenannten Transformationsmatrix bereit: transform()
und das bereits in Listing 5.2 angesprochene setTransform() :
context.transform(m11, m12, m21, m22, dx, dy);
context.setTransform(m11, m12, m21, m22, dx, dy);
Beiden gemeinsam sind die Argumente m11 , m12 , m21 , m22 , dx und dy , die folgen-
de Tranformationseigenschaften repräsentieren:
Komponente
Inhalt
m11
Skalierung in x-Richtung
m12
Horizontaler Scherfaktor
m21
Vertikaler Scherfaktor
m22
Skalierung in y-Richtung
dx
Verschiebung in x-Richtung
dy
Verschiebung in y-Richtung
Tabelle 5.3: Komponenten einer Canvas-Matrix-Transformation
Search WWH ::




Custom Search