Rheinwerk Computing < openbook > Rheinwerk Computing - Professionelle Bücher. Auch für Einsteiger.
Professionelle Bücher. Auch für Einsteiger.

Inhaltsverzeichnis
1 Einführung
2 Grundlagen
3 Fehlerbehandlung
4 Erweiterte Grundlagen
5 Objektorientierte Programmierung
6 Wichtige Klassen in .NET
7 Weitere Elemente eines Windows-Programms
8 Datenbank-Anwendungen mit ADO.NET
9 Internet-Anwendungen mit ASP.NET
10 Zeichnen mit GDI+
11 Beispielprojekte
A Installation und technische Hinweise
B Lösungen der Übungsaufgaben
Stichwort

Buch bestellen
Ihre Meinung?

Spacer
<< zurück
Einstieg in Visual Basic 2010 von Thomas Theis
Inkl. Visual Studio Express Editions
Buch: Einstieg in Visual Basic 2010

Einstieg in Visual Basic 2010
2., akt. und erw. Aufl., Klappbroschur, mit DVD
467 S., 24,90 Euro
Rheinwerk Computing
ISBN 978-3-8362-1541-1
Pfeil 10 Zeichnen mit GDI+
Pfeil 10.1 Grundlagen von GDI+
Pfeil 10.2 Linie, Rechteck, Polygon und Ellipse zeichnen
Pfeil 10.2.1 Grundeinstellungen
Pfeil 10.2.2 Linie
Pfeil 10.2.3 Rechteck
Pfeil 10.2.4 Polygon
Pfeil 10.2.5 Ellipse
Pfeil 10.2.6 Dicke und Farbe ändern, Zeichnung löschen
Pfeil 10.3 Text schreiben
Pfeil 10.4 Bilder darstellen
Pfeil 10.5 Dauerhaft zeichnen


Rheinwerk Computing - Zum Seitenanfang

10.2 Linie, Rechteck, Polygon und Ellipse zeichnen Zur nächsten ÜberschriftZur vorigen Überschrift

Das erste Beispielprogramm (Projekt ZeichnenGrundformen) enthält folgende Möglichkeiten:

  • Zeichnen einer Linie
  • Zeichnen eines leeren oder gefüllten Rechtecks
  • Zeichnen eines leeren oder gefüllten Polygons
  • Zeichnen einer leeren oder gefüllten Ellipse
  • Ändern der Stiftdicke
  • Ändern der Stiftfarbe
  • Löschen der gesamten Zeichnung

Das entstandene Kunstwerk könnte damit aussehen wie in Abbildung 10.1.

Abbildung 10.1 Erste geometrische Objekte


Rheinwerk Computing - Zum Seitenanfang

10.2.1 Grundeinstellungen Zur nächsten ÜberschriftZur vorigen Überschrift

Zunächst müssen einige Grundeinstellungen getroffen werden:

Public Class Form1
    Dim z As Graphics = CreateGraphics()
    Dim stift As New Pen(Color.Red, 2)
    Dim pinsel As New SolidBrush(Color.Red)

    Private Sub Form1_Load(...) Handles MyBase.Load
        lstFarbe.Items.Add("Rot")
        lstFarbe.Items.Add("Grün")
        lstFarbe.Items.Add("Blau")
        lstFarbe.SelectedIndex = 0
    End Sub
[...]
End Class

Listing 10.1 Projekt »ZeichnenGrundformen«, Einstellungen

Zur Erläuterung:

  • Die Methode CreateGraphics() liefert einen Verweis auf das Graphics-Objekt des Formulars. Es kann nun im gesamten Formular mithilfe der Variablen z auf die Zeichenfläche des Formulars zugegriffen werden.
  • Diese sehr einfache Methode hat allerdings den Nachteil, dass die Zeichnung teilweise oder ganz gelöscht wird, sobald z. B. eine andere Anwendung über dem Formular eingeblendet wird. Eine andere Methode wird am Ende dieses Abschnitts vorgestellt.

Pen

  • Es wird ein Zeichenstift zum Zeichnen von Linien und nicht-gefüllten Objekten in der Farbe Rot und der Dicke 2 festgelegt. Dieser steht nun im gesamten Formular über das Objekt stift der Klasse Pen zur Verfügung.

SolidBrush

  • Ein einfacher Pinsel zum Füllen von Objekten wird ebenfalls in der Farbe Rot festgelegt. Dieser steht nun im gesamten Formular über das Objekt pinsel der Klasse SolidBrush zur Verfügung.
  • Ein Listenfeld ermöglicht einen Farbwechsel für Stift und Pinsel. Dieses Listenfeld wird zu Beginn des Programms mit drei Farben gefüllt.

Rheinwerk Computing - Zum Seitenanfang

10.2.2 Linie Zur nächsten ÜberschriftZur vorigen Überschrift

DrawLine()

Zum Zeichnen einer Linie wird die Methode DrawLine() verwendet. Die Prozedur:

Private Sub cmdLinie_Click(...) Handles ...
    z.DrawLine(stift, 100, 40, 100, 60)
End Sub

Listing 10.2 Projekt »ZeichnenGrundformen«, Linie

Zur Erläuterung:

  • Die Methode DrawLine() erfordert in jedem Fall einen Zeichenstift.
  • Anschließend werden die Start- und Endkoordinaten der Linie angegeben, entweder als Einzelkoordinaten (x,y) oder als Objekte der Klasse Point.

Rheinwerk Computing - Zum Seitenanfang

10.2.3 Rechteck Zur nächsten ÜberschriftZur vorigen Überschrift

DrawRectangle(), FillRectangle()

Die Methoden DrawRectangle() und FillRectangle() erzeugen ungefüllte bzw. gefüllte Rechtecke. Sind beide Seiten des Rechtecks gleich lang, handelt es sich bekanntlich um ein Quadrat:

Private Sub cmdRechteck_Click(...) Handles ...
    If chkFüllen.Checked Then
        z.FillRectangle(pinsel, 10, 10, 180, 180)
        chkFüllen.Checked = False
    Else
        z.DrawRectangle(stift, 10, 10, 180, 180)
    End If
End Sub

Listing 10.3 Projekt »ZeichnenGrundformen«, Rechteck

Zur Erläuterung:

  • Der Benutzer kann über das Kontrollkästchen chkFüllen festlegen, ob es sich um ein gefülltes oder leeres Rechteck handeln soll.
  • Das gefüllte Rechteck benötigt einen Pinsel, das leere Rechteck einen Zeichenstift.

Rechteck-Koordinaten

  • Anschließend gibt man entweder vier Werte für die x- und y-Koordinate der oberen linken Ecke sowie für die Breite und Höhe des Rechtecks oder ein Objekt der Klasse Rectangle an.
  • Falls der Benutzer das gefüllte Rechteck gewählt hat, wird das Kontrollkästchen für das nächste Objekt wieder zurückgesetzt.

Rheinwerk Computing - Zum Seitenanfang

10.2.4 Polygon Zur nächsten ÜberschriftZur vorigen Überschrift

DrawPolygon(), FillPolygon()

Polygone sind Vielecke und bestehen aus einem Linienzug, der nacheinander alle Ecken einschließt. Die Methoden DrawPolygon() und FillPolygon() erzeugen einen geschlossenen Polygonzug, der ungefüllt bzw. gefüllt ist.

Falls der Benutzer das gefüllte Polygon gewählt hat, wird das Kontrollkästchen für das nächste Objekt wieder zurückgesetzt.

Private Sub cmdPolygon_Click(...) Handles ...
    Dim point_feld() As Point =
            {New Point(90, 80),
             New Point(110, 80),
             New Point(100, 120)}
    If chkFüllen.Checked Then
        z.FillPolygon(pinsel, point_feld)
        chkFüllen.Checked = False
    Else
        z.DrawPolygon(stift, point_feld)
    End If
End Sub

Listing 10.4 Projekt »ZeichnenGrundformen«, Polygon

Zur Erläuterung:

  • Ebenso wie das Rechteck kann auch das Polygon gefüllt (mithilfe eines Pinsels) oder ungefüllt (mithilfe eines Zeichenstifts) erzeugt werden.

Point-Objekte

  • Als zweiter Parameter wird ein Feld von Objekten der Klasse Point benötigt. Die Anzahl der Elemente dieses Felds bestimmt die Anzahl der Ecken des Polygons.
  • Zwischen zwei Punkten, die in dem Feld aufeinander folgen, wird eine Linie gezogen. Vom letzten Punkt aus wird zuletzt noch eine Linie zum ersten Punkt gezogen.

Rheinwerk Computing - Zum Seitenanfang

10.2.5 Ellipse Zur nächsten ÜberschriftZur vorigen Überschrift

DrawEllipse(), FillEllipse()

Die Methoden DrawEllipse() und FillEllipse() erzeugen ungefüllte bzw. gefüllte Ellipsen innerhalb eines umgebenden Rechtecks. Sind beide Seiten des umgebenden Rechtecks gleich lang, so erhält man einen Kreis. Die Prozedur:

Private Sub cmdEllipse_Click(...) Handles ...
    If chkFüllen.Checked Then
        z.FillEllipse(pinsel, 10, 10, 180, 180)
        chkFüllen.Checked = False
    Else
        z.DrawEllipse(stift, 10, 10, 180, 180)
    End If
End Sub

Listing 10.5 Projekt »ZeichnenGrundformen«, Ellipse

Zur Erläuterung:

Umgebendes Rechteck

  • Der Aufbau der Ellipse entspricht dem Aufbau eines Rechtecks, das diese Ellipse umgibt.

Rheinwerk Computing - Zum Seitenanfang

10.2.6 Dicke und Farbe ändern, Zeichnung löschen topZur vorigen Überschrift

Einige Hilfsroutinen vervollständigen unser kleines Zeichenprogramm:

Private Sub numPenWidth_ValueChanged(...
        ) Handles numPenWidth.ValueChanged
    stift.Width = numPenWidth.Value
End Sub

Private Sub lstFarbe_SelectedIndexChanged(...
        ) Handles lstFarbe.SelectedIndexChanged
    Dim color_feld() As Color =
        {Color.Red, Color.Green, Color.Blue}
    stift.Color =
        color_feld(lstFarbe.SelectedIndex)
    pinsel.Color =
        color_feld(lstFarbe.SelectedIndex)
End Sub

Private Sub cmdClear_Click(...) Handles ...
    z.Clear(BackColor)
End Sub

Listing 10.6 Projekt »ZeichnenGrundformen«, Ändern, Löschen

Zur Erläuterung:

  • Die Eigenschaft Width bestimmt die Dicke des Zeichenstifts. Der Wert des Zahlenauswahlfelds wird bei einer Änderung unmittelbar für die Stiftdicke übernommen.

Color

  • Die Eigenschaft Color bestimmt die Farbe des Zeichenstifts und des Pinsels. Der Index des ausgewählten Elements im Listenfeld wird bei einer Änderung unmittelbar übernommen, um das zugehörige Element des Felds color_feld zu bestimmen. Das Feld color_feld ist ein Feld von Objekten der Struktur Color.

Clear()

  • Die Methode Clear() dient zum Löschen der Zeichenfläche. Eigentlich handelt es sich um ein Auffüllen mit einer Einheitsfarbe. Hier wird die normale Hintergrundfarbe des Formulars zum Auffüllen genommen.


Ihr Kommentar

Wie hat Ihnen das <openbook> gefallen? Wir freuen uns immer über Ihre freundlichen und kritischen Rückmeldungen. >> Zum Feedback-Formular
<< zurück
  Zum Katalog
Zum Katalog: Einstieg in Visual Basic 2010

Einstieg in Visual Basic 2010
Jetzt bestellen


 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 Buchempfehlungen
Zum Katalog: Visual Basic 2012






 Visual Basic 2012


Zum Katalog: Schrödinger programmiert C++






 Schrödinger
 programmiert C++


Zum Katalog: IT-Handbuch für Fachinformatiker






 IT-Handbuch für
 Fachinformatiker


Zum Katalog: Java ist auch eine Insel






 Java ist auch
 eine Insel


Zum Katalog: Einstieg in Python






 Einstieg in Python


 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
InfoInfo




Copyright © Rheinwerk Verlag GmbH 2010
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


[Rheinwerk Computing]

Rheinwerk Verlag GmbH, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, service@rheinwerk-verlag.de