3
AG Info 11 Grafik mit Delphi Arbeitsblatt 09 Einführung in die Grafik mit Delphi Die Eigenschaft Canvas (Leinwand) stellt eine Zeichenoberfläche zur Verfügung mit den Werkzeugen Pen (Stift), Brush (Pinsel) etc und zahlreichen Methoden zum Zeichnen. Eigenschaften der Werkzeuge Pen und Brush Canvas.Pen.Color := farbe; Legt die Eigenschaft der Zeichenstiftes fest. z.B. clBlack, clWhite, clBlue, clRed, clYellow Canvas.Pen.Style := strichart; Legt das Linienmuster fest. z.B. psSolid, psDash, psDot, psDashDot Canvas.Pen.Width := breite; Legt die Dicke des Zeichenstiftes fest Canvas.Brush.Color := farbe; Legt die Füllfarbe eines Objektes fest Canvas.Brush.Style := muster; Legt das Füllmuster eines Objektes fest z.B. bsSolid, bsClear, bsCross, bsHorizontal, bsVertical, bsBDiagonal, etc. Methoden zum Zeichnen geometrischer Objekte Canvas.MoveTo(x,y); Positionierung des Stiftes ohne Zeichnung Canvas.LineTo(x,y); Linie vom aktuellen Punkt zum Punkt (x,y). Canvas.Rectangle(xo,yo,xu,yu); Rechteck mit Ecke links oben (xo,yo) und Ecke rechts unten (xu,yu) Canvas.Ellipse(xo,yo,xu,yu); Ellipse (oder Kreis) Ecke links oben (xo,yo) und Ecke rechts unten (xu,yu) Canvas.Ellipse(x-r,y-r,x+r,y+r); Kreis mit Radius r um den Mittelpunkt (x,y) Canvas.FloodFill(x,y,Color,Style); Flächenfüllung der durch den Punkt (x,y) definierten Fläche mit der Farbe Color. Canvas.Polygon( [ Point(x1,y1), Point(x2,y2), ....Point(xn,yn)]) Geschlossener Kurvenzug mit den Koordinaten (x1,y1),...,(xn,yn) der Eckpunkte des Polygonzuges Canvas.TextOut(xo,yo,String); Zeichenkette an linker oberer Ecke (xo,yo) Mehrere Anweisungen der Canvas-Eigenschaft können durch die Anweisung WITH Canvas DO BEGIN END geklammert werden. Viel Schreibaufwand Weniger Schreibaufwand (Klammerung) Canvas.Pen.Color := clRed; Canvas.Pen.Width := 3; Canvas.LineTo(300,50); Canvas.TextOut(100,120,'Hallo'); With Canvas do begin Pen.Color := clRed; Pen.Width := 3; LineTo(300,50); TextOut(100,120,'Hallo'); end;

Einführung in die Grafik mit Delphi - Ernst Schreierschreier.free.fr/dhg-info/material/LPE2b/aufgaben/std09_grafik1.pdf · AG Info 11 Grafik mit Delphi Arbeitsblatt 09 Ein Rechteck

  • Upload
    ngotu

  • View
    215

  • Download
    0

Embed Size (px)

Citation preview

AG Info 11 Grafik mit Delphi Arbeitsblatt 09

Einführung in die Grafik mit Delphi Die Eigenschaft Canvas (Leinwand) stellt eine Zeichenoberfläche zur Verfügung mit den Werkzeugen Pen (Stift), Brush (Pinsel) etc und zahlreichen Methoden zum Zeichnen.

Eigenschaften der Werkzeuge Pen und Brush

Canvas.Pen.Color := farbe; Legt die Eigenschaft der Zeichenstiftes fest.z.B. clBlack, clWhite, clBlue, clRed, clYellow

Canvas.Pen.Style := strichart; Legt das Linienmuster fest.z.B. psSolid, psDash, psDot, psDashDot

Canvas.Pen.Width := breite; Legt die Dicke des Zeichenstiftes fest

Canvas.Brush.Color := farbe; Legt die Füllfarbe eines Objektes fest

Canvas.Brush.Style := muster;Legt das Füllmuster eines Objektes festz.B. bsSolid, bsClear, bsCross, bsHorizontal, bsVertical, bsBDiagonal, etc.

Methoden zum Zeichnen geometrischer Objekte

Canvas.MoveTo(x,y); Positionierung des Stiftes ohne ZeichnungCanvas.LineTo(x,y); Linie vom aktuellen Punkt zum Punkt (x,y).

Canvas.Rectangle(xo,yo,xu,yu);Rechteck mit Ecke links oben (xo,yo) und Ecke rechts unten (xu,yu)

Canvas.Ellipse(xo,yo,xu,yu);Ellipse (oder Kreis) Ecke links oben (xo,yo) und Ecke rechts unten (xu,yu)

Canvas.Ellipse(x-r,y-r,x+r,y+r); Kreis mit Radius r um den Mittelpunkt (x,y)

Canvas.FloodFill(x,y,Color,Style); Flächenfüllung der durch den Punkt (x,y) definierten Fläche mit der Farbe Color.

Canvas.Polygon( [ Point(x1,y1), Point(x2,y2),

....Point(xn,yn)])Geschlossener Kurvenzug mit den Koordinaten (x1,y1),...,(xn,yn) der Eckpunkte des Polygonzuges

Canvas.TextOut(xo,yo,String); Zeichenkette an linker oberer Ecke (xo,yo)

Mehrere Anweisungen der Canvas-Eigenschaft können durch die Anweisung WITH Canvas DO BEGIN END geklammert werden.

Viel Schreibaufwand Weniger Schreibaufwand (Klammerung)

Canvas.Pen.Color := clRed;Canvas.Pen.Width := 3;Canvas.LineTo(300,50);Canvas.TextOut(100,120,'Hallo');

With Canvas dobegin Pen.Color := clRed; Pen.Width := 3; LineTo(300,50); TextOut(100,120,'Hallo');end;

AG Info 11 Grafik mit Delphi Arbeitsblatt 09

Arbeitsauftrag Zeichnen und Malen mit Delphi1. Starten Sie Delphi und geben Sie dem Anfangsfenster FORM1 die Caption Zeichnen

und Malen mit Delphi, die Breite (ClientWidth) 400 und die Höhe (ClientHeight) 320. Speichern Sie Projekt und Unit unter den Namen Zeichnen.dpr bzw. ZeichnenU.pas in einem neuen Ordner Zeichnung.

2. Wählen Sie in der Standard-Komponentenliste die visuelle Komponente MainMenu und plazieren Sie diese beliebig auf Form1. Durch einen Doppelklick auf die Komponente geben Sie unter Caption folgende Haupt- und Untermenüpunkte ein:

Display Loesche Ende

Zeichnungen Ein X Ein Quadrat Ein Kreis Haus vom Nikolaus Ein buntes Haus Kunst, oder was?

3. Fügen Sie die beiden Standard-Anweisungen in die Ereignisbehandlungsroutinen ein:

procedure TForm1.Loesche1Click;begin

refresh;end;

procedure TForm1.Ende1Click;begin

close;end;

4. Schreiben Sie die Ereignisbehandlungsroutine procedure TForm1.EinX1Click:

Bei Auswahl dieses Menüpunktes soll in der linken obe­ren Ecke des Formulars ein blaues X gezeichnet werden.

Verwenden Sie die Canvas-Methoden MoveTo(x,y) und LineTo(x,y) mit den nebenstehenden Koordinaten.

Klammern Sie die Grafik-Anweisungen mitWith Canvas do begin Anweisungsteil end;

5. Schreiben Sie die Ereignisbehandlungsroutine TForm1.EinQuadrat1Click:

Die Größe der Form ist durch die Eigenschaften

ClientWidth und ClientHeight definiert.

Wollen Sie ein rotes Quadrat in der Mitte des aktuellen Fensters plazieren, so müssen Sie die Koordinaten des Fenstermittelpunktes berechnen (s.r.):

procedure TForm1.EinQuadrat1Click;var x,y: Integer;begin

x := ClientWidth div 2;y := ClientHeight div 2; ...

end;

(0,0) (100,0) x

(0,100) (100,100) y

AG Info 11 Grafik mit Delphi Arbeitsblatt 09

Ein Rechteck (und damit auch ein Qua­drat) wird durch die linke obere und die rechte untere Ecke definiert. Sie müssen diese Koordinaten also relativ zum Fenstermittelpunkt berechnen (Die Variable s belegen Sie mit dem Zahlenwert der halben Seitenlänge).

With Canvas do begin .......... BrushStyle := bsClear; Rectangle(x-s, y-s, x+s, y+s); end;

6. Eine Ellipse (und damit auch ein Kreis) ist durch das umschriebene Rechteck definiert.Schreiben Sie deshalb die Ereignisbehandlungsroutine TForm1.EinKreis1Click,indem Sie

den Quelltext von procedure TForm1.EinQuadrat1Click kopieren und hierin Rectangle(x-s, y-s, x+s, y+s); durch Ellipse(x-r, y-r, x+r, y+r); ersetzen.

7. Schreiben Sie die Ereignisbehandlungsroutine HausvomNikolaus1Click; Dies soll das Haus vom Nikolaus in acht aufeinanderfolgenden Linienzügen zeichnen, welche sich nicht überdecken dürfen. Die Prozedur soll am Startpunkt (x,y) = (100,300) be­ginnen und ein Nikolaushaus der Kantenlänge s = 200 zeichnen (siehe Zeichnung).

Für die Koordinaten der Dachspitze ist es vorteilhaft, eine weitere Variable s2 = s div 2 einzuführen. Um die Linienabfolge mit dem Auge verfolgen zu können, müssen sie den Rechner zwischen den einzelnen Strichen mit der Anweisung Sleep(500); eine halbe Sekunde schlafen legen.

5. Malen Sie ein buntes Haus mit den gleichen Massen wie das Haus vom Nikolaus. Testen Sie Farben, Formen, Kombinationen etc.

6. Malen Sie Kunstfiguen aus Linien, Quadraten, Kreisen, Ellipsen etc.

Das ist das Haus

vom Ni- ko- laus x x+s

y

y-s

y-s-s2

x+s2