Grafik

Einstieg: ein einfaches Beispiel

procedure TForm1.Button1Click(Sender: TObject);
var i: Integer;
begin
  i := 0;
  REPEAT
      inc(i);

      Canvas.TextOut(50,i*20,'Hallo'); {Schreibt Hallo in die i-te Zeile}

UNTIL i = 6;
end;

end.

Canvas ist die grafische Ebene, auf der alles erscheint, die Benutzeroberfläche. Bisher haben wir hier nur vorgefertige
Elemente wie Buttons und Ein- und Ausgabefelder benutzt. Wie man an obigem Beispiel sieht, kann man aber auch direkt auf diese
Ebene über "Canvas" und deren Methoden zugreifen.

Einige Methoden und Eigenschaften von Canvas sind:

Aussehen von Linien und Umrandungen ("Zeichenstift" oder "Pen"):

Füllmuster und Füllfarbe ("Pinsel" oder "Brush"):

 

Verwenden grafischer Elemente

Lassen wir das Programm ein einfaches Rechteck zeichnen. Mit der Methode canvas.rectangel(x1,y1,x2,y2) zeichnet Delphi ein Rechteck, das durch die Punkte P(x1|y1) (links oben) und Q(x2|y2) (rechts unten) bestimmt wird. Zusätzlich können mit canvas.pen und canvas.brush Füll und Randfarben sowie dessen Dicke festgelegt werden.

Die x- und y-Koordinaten werden vom linken oberen Eckpunkt der Zeichenfläche in Pixel nach rechts und nach unten gezählt.

 

procedure TForm1.Button1Click(Sender: TObject);
var w, h:integer;
begin
w := form1.Width;
h := form1.Height;
Canvas.Pen.Width := 5;
Canvas.Brush.Style := bssolid;
Canvas.Brush.Color := clNavy;

Canvas.Rectangle(10,10, h div 4, w div 2);

end;

Damit zeichnen wir ein Rechteck mit den Seitenlängen 1/4 der Höhe und 1/2 der Breite des Zeichenbereiches, das je 10 Punkte von der linken oberen Ecke des Zeichenbereiches entfernt ist.



Aufgabe 1 Schreibe ein Programm "procedure TForm1.Button1Click...", das ein blaues Rechteck mit gelber Umrandung zeichnet. Das Reckeck habe die Seitenlängen 40 und 50. Benutze zur Bestimmung des Farbnamens die Dellphilfe (TColor type...).

Aufgabe 2 Verändere das Programm, so dass es Rechtecke unterschiedlicher Dimensionen zeichnet. Beachte dabei die Möglichkeiten mit "Form1.Width" und Form1.Height" die Höhe und Breite des aktuellen Formulars und der damit zur Verfügung stehenden Zeichenfläche zu bestimmen.

Aufgabe 3 Anstatt auf das Formular zu zeichnen und kann man dort auch eine eigene und damit reversible Zeichenfläche mit der Komponente TImage festlegen. Sie kann über die Komponentenpalette "Additional" ("Zusätzlich") eingefügt werden. Auf sie zugegriffen wird beispielsweise mit "image1.canvas".
Löse die Aufgaben eins und zwei mit Hilfe von TImage.

Aufgabe 4 Schreibe einen kleinen Funktionsplotter.

a) Zeichne zuerst mit Moveto und Lineto ein Koordinatensystem. Arbeite soweit wie möglich mit Variablen, damit das Achsenkreuz später maßstäblich verändert werden kann.

b) Hole die Parameter einer ganzrationalen Funktion über Eingabefelder und bestimme die Werte innerhalb eines Intervalls mit Hilfe einer Schleife.

c) Lasse die Werte mit LineTo auf dem TImage zeichnen.

Überlege sinnvolle Mechanismen, um Werte jenseits des Zeichenbereiches zu behandeln.

>> Anwendung: Julia- und Mandelbrotmengen