Grafikausgabe mit dem Modul ColorPlane

 

 

 

Programmiersprachen bestehen aus wenigen, grundlegenden Anweisungen. Die verschiedenen Sprachen ähneln sich darin meist sehr. In Oberon-2 sind das die folgenden Operatoren ("Rechenzeichen") und Bezeichner:

+ := ARRAY IMPORT RETURN
- ^ BEGIN IN THEN
* = BY IS TO
/ # CASE LOOP TYPE
~ < CONST MOD UNTIL
& > DIV MODULE VAR
. <= DO NIL WHILE
, >= ELSE OF WITH
; .. ELSIF OR
| : END POINTER
( ) EXIT PROCEDURE
[ ] FOR RECORD
{ } IF REPEAT

Daneben gibt es in der Regel zusätzliche Prozeduren, die sich auf diese Grundbefehle und auf Schnittstellen des Betriebssystems stützen; besonders wichtig sind dabei zunächst jene, die die Eingabe über Tastatur und andere Geräte ermöglichen und die Ausgabe auf dem Bildschirm regeln.
Seit Beginn benutzen wir dabei Prozeduren aus dem Modul Display, das Möglichkeiten für die Texteingabe und -ausgabe bereitstellt. Über den vollen Umfang des Moduls kann man sich mit Hilfe des Oberon-2 Symbolfile Browsers (im Menü unter Tools) informieren: Öffnet man damit die Datei Display.sym, so werden alle Prozeduren dieses Moduls aufgelistet.

Für das Arbeiten mit Grafik steht daneben das Modul ColorPlane zur Verfügung. Bei der Arbeit mit diesem Modul ist folgendes zu beachten:

 

Exemplarisch werden nun einige weitere Prozeduren aus dem Modul ColorPlane vorgestellt:


Aufgaben

1.  Entwickle ein Programm, das ein Rechteck, ein gefülltes Rechteck, eine Linie und einen Punkt, jeweils in verschiedenen Farben, zeichnet.
Musterlösung
2. Schreibe ein Programm, das ein Rechteck und die beiden zugehörigen Diagonalen des Rechtecks zeichnet.
Musterlösung
3. Schreibe ein Programm, das 10 Quadrate der Kantenlänge 20 nebeneinander zeichnet.
Musterlösung
4. Schreibe ein Programm, das Quadrate der Kantenlänge 20, 40, 60, ... 200 ineinander zeichnet.
Musterlösung
5. Verändere das Programm von Aufgabe 4 so, dass es 255 Quadrate der Kantenlänge 255, 254, ...,3, 2, 1, 0 ineinander zeichnet. Gleichzeitig soll sich die Farbe von rot (255,0,0) nach grün (0,255,0) verändern. Entwickle anschließend auch andere Farbübergänge!
Musterlösung

6. Um einen Kreis zu zeichnen, muss man diesen aus vielen einzelnen Punkten zusammensetzen. Die mathematischen Grundlagen dazu lernst du in der 10. Klasse. 

MODULE Kreis;

IMPORT C:=ColorPlane,
     F:=Float;                        (*Das Modul Float enthält Prozeduren für die Arbeit mit Kommazahlen*)
PROCEDURE ProgMain*;
     CONST radius = 100;   (*Festlegung von Konstanten*)
                    xm = 200;
                    ym = 200;
     VAR x,y,winkel : INTEGER;
                    xr, yr : REAL;
                    ch : CHAR;
     BEGIN
                    C.Open();
                    FOR winkel := 0 TO 360 DO
                              xr := F.Sin(winkel / 180 * 3.1415)*radius;
                              yr := F.Cos(winkel / 180 * 3.1415)*radius;
                              x := SHORT(ENTIER(xr));
                              y := SHORT(ENTIER(yr));
                              C.Dot (x+xm,y+ym,1);
                    END;
                    ch:=C.ReadKey();
 END ProgMain;
END Kreis.

7. Schreibe ein Programm, das die olympischen Ringe zeichnet. 
(Farbreihenfolge von links nach rechts: oben: Blau, Schwarz, Rot; unten: Gelb, Grün )
(Ohne Lösung)

8. Schreibe ein Programm, das einen voll ausgefüllten Kreis zeichnet. (Entsprechend zu Aufgabe 5) (Ohne Lösung)