Hauptinhalt
Kurs: Programmierung > Lerneinheit 4
Lektion 6: TransformationenSkalierung
Die letzte Transformation im Koordinatensystem ist die Skalierung, bei der die Größe des Rasters geändert wird. Schau dir dieses Programm an, das erst ein Quadrat zeichnet, dann das Raster um das Doppelte hochskaliert, und anschließend das Quadrat noch einmal zeichnet.
Zunächst wirst du bemerken, dass sich das Quadrat anscheinend verschoben hat. Das stimmt so natürlich nicht. Seine linke obere Ecke befindet sich immer noch bei (20, 20) auf dem hochskalierten Raster, aber dieser Punkt ist nun doppelt so weit weg vom Ursprung wie beim ursprünglichen Koordinatensystem.
Wenn du wolltest, dass das große Quadrat an derselben Ecke beginnt wie das kleine Quadrat, könntest du es zuerst verschieben und dann skalieren:
Du wirst vielleicht auch beim Vergleich der beiden Programme bemerken, dass die Linien beim großen Quadrat dicker sind. Das ist keine optische Täuschung—die Linien sind tatsächlich doppelt so dick, weil das Koordinatensystem auf seine doppelte Größe hochskaliert wurde. Du könntest dafür nun direkt den Wert von
strokeWeight()
ändern, oder von Vornherein scale()
nicht verwenden.Der Befehl
scale()
nimmt nicht nur einen, sondern zwei optionale Parameter auf, daher kannst du die x- und die y-Abmessungen getrennt verschieben. Versuche, im obenstehenden Programm den Befehl scale(3{,}0, 0{,}5)
zu verwenden, um die x-Dimension drei mal so groß und die y-Dimension halb so groß zu machen.Dieser Artikel ist eine Bearbeitung von 2D Transformations von J. David Eisenberg und wird unter einer Creative Commons Attribution-NonCommercial-ShareAlike-Lizenz verwendet.
Willst du an der Diskussion teilnehmen?
Noch keine Beiträge.