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
12 Windows Presentation Foundation
13 Windows Store-Apps für Windows 8
A Installation und technische Hinweise
B Lösungen der Übungsaufgaben
C Inhalt der Buch-DVD
D Der Autor
Stichwort

Jetzt Buch bestellen
Ihre Meinung?

Spacer
Einstieg in Visual Basic 2012 von Thomas Theis
Ideal für Programmiereinsteiger geeignet
Buch: Einstieg in Visual Basic 2012

Einstieg in Visual Basic 2012
Rheinwerk Computing
579 S., 3., aktualisierte und erweiterte Auflage 2013, brosch., mit DVD
24,90 Euro, ISBN 978-3-8362-1959-4
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
Pfeil 10.6 Zeichnen einer Funktion

Rheinwerk Computing - Zum Seitenanfang

10.2 Linie, Rechteck, Polygon und Ellipse zeichnenZur nächsten Ü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

Abbildung 10.1 Erste geometrische Objekte


Rheinwerk Computing - Zum Seitenanfang

10.2.1 GrundeinstellungenZur 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 in Abschnitt 10.5 vorgestellt.
  • 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.
  • 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 LinieZur nächsten ÜberschriftZur vorigen Überschrift

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 RechteckZur nächsten ÜberschriftZur vorigen Überschrift

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.
  • 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 PolygonZur nächsten ÜberschriftZur vorigen Überschrift

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.
  • 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 EllipseZur nächsten ÜberschriftZur vorigen Überschrift

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:

  • 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öschenZur 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.
  • 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.
  • Die Methode Clear() dient zum Löschen der Zeichenfläche. Eigentlich handelt es sich dabei um ein Auffüllen mit einer Einheitsfarbe. Hier wird die normale Hintergrundfarbe des Formulars zum Auffüllen genommen.


Ihre Meinung

Wie hat Ihnen das Openbook gefallen? Wir freuen uns immer über Ihre Rückmeldung. Schreiben Sie uns gerne Ihr Feedback als E-Mail an kommunikation@rheinwerk-verlag.de.

<< zurück
  Zum Rheinwerk-Shop
Zum Rheinwerk-Shop: Einstieg in Visual Basic 2012

Einstieg in Visual Basic 2012
Jetzt Buch bestellen


 Ihre Meinung?
Wie hat Ihnen das Openbook gefallen?
Ihre Meinung

 Buchempfehlungen
Zum Rheinwerk-Shop: Visual Basic 2012






 Visual Basic 2012


Zum Rheinwerk-Shop: Schrödinger programmiert C++






 Schrödinger
 programmiert C++


Zum Rheinwerk-Shop: IT-Handbuch für Fachinformatiker






 IT-Handbuch für
 Fachinformatiker


Zum Rheinwerk-Shop: Java ist auch eine Insel






 Java ist auch
 eine Insel


Zum Rheinwerk-Shop: Einstieg in Python






 Einstieg in Python


 Lieferung
Versandkostenfrei bestellen in Deutschland, Österreich und der Schweiz
InfoInfo





Copyright © Rheinwerk Verlag GmbH 2013
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.


Nutzungsbestimmungen | Datenschutz | Impressum

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

Cookie-Einstellungen ändern