6 Bilder konstruieren: "image.ss"
Note: This is documentation for the image.ss teachpack that goes with the German textbook Die Macht der Abstraktion.
Dieses Teachpack definiert Prozeduren für die Konstruktion von Bildern. Einfache Bilder werden als geometrische Formen oder Bitmaps konstruiert. Zusätzliche Prozeduren erlauben die Komposition von Bildern.
6.1 Bilder
6.2 Modi und Farben
Ein Modus (Name: mode) legt fest, ob die Darstellung einer Form diese füllt oder nur einen Umriss zeichnet.
Ein Oktet (Name: octet) ist eine natürliche Zahl zwischen 0 und 255.
color-green : (color -> octet) |
color-blue : (color -> octet) |
Eine Farbe (Name: image-color) ist eine Zeichenkette aus einer Farbbezeichnung (z.B. "blue") oder eine RGB-Farbe.
image-color? : (%a -> boolean?) |
6.3 Einfache geometrische Figuren
Die folgenden Prozeduren erzeugen Bilder mit einfachen geometrischen Formen:
rectangle : (natural natural mode image-color -> image) |
circle : (natural mode image-color -> image) |
ellipse : (natural natural mode image-color -> image) |
triangle : (integer mode image-color -> image) |
line : (natural natural number number number number image-color -> image) |
text : (string natural image-color -> image) |
Außerdem können beliebige Bitmap-Bilder in ein Scheme-Programm eingeklebt werden.
6.4 Eigenschaften von Bildern
Zwei Eigenschaften von Bildern sind für ihre Manipulation nützlich, nämlich Breite und Höhe:
image-width : (image -> natural) |
image-height : (image -> natural) |
6.5 Bilder zusammensetzen
The nächste Gruppe von Prozeduren baut aus Bildern neue Bilder:
Eine horizontale Positionsangabe (Name: h-place) gibt an, wie zwei Bilder horizontal zueinander positioniert werden
Im ersten Fall, wenn es sich um eine Zahl x handelt, wird das zweite Bild x Pixel vom linken Rand auf das erste gelegt. Die drei Fälle mit Zeichenketten sagen, daß die Bilder am linken Rand bzw. am rechten Rand bündig plaziert werden, bzw. das zweite Bild horizontal in die Mitte des ersten gesetzt wird.
Eine vertikale Positionsangabe (Name: v-place) gibt an, wie zwei Bilder vertikal zueinander positioniert werden
Im ersten Fall, wenn es sich um eine Zahl y handelt, wird das zweite Bild y Pixel vom oberen Rand auf das erste gelegt. Die drei Fälle mit Zeichenketten sagen, daß die Bilder am oberen Rand bzw. am unteren Rand bündig plaziert werden, bzw. das zweite Bild vertikal in die Mitte des ersten gesetzt wird.
Eine vertikale Justierungsangabe (Name: V-mode) gibt an, ob zwei Bilder, die nebenander angeordnet werden, entlang der oberen Kante, der untern Kante oder der Mitte angeordnet werden.