Graphics Reference
In-Depth Information
.sicht = False
End With
EndeFac:
Next j
End Sub
9.2.2 2D-Clipping im Darstellungsbereich
In der Anfangszeit der Grafikprogrammierung war es sehr wichtig, alle außerhalb
des Ausgabebereichs liegenden Elemente sicher abzuschneiden. Im günstigsten Fal-
le stoppte das Programm mit einem Fehler, wenn Grafikelemente außerhalb lagen,
im ungünstigsten Falle malte z. B. der Zeichenstift eines Plotters unkontrolliert in
der Gegend oder verbog gar bei einem harten Anschlag am Gehäuse. Nach solchen
Vorfällen wurde bei Plottern ein Clippingverfahren für die Randbereiche eingebaut.
Heute müssen wir uns um dieses Problem nicht mehr kümmern, denn die Rou-
tinen des Grafikkerns GDI + zeichnen nur die Kanten und Facetten - oder Teile
davon -, die innerhalb des Ausgabebereichs liegen, ganz unabhängig davon, ob die-
se über dessen Berandung hinausragen. Ein ‚Bereich' ist ein Teil der Ausgabefläche
eines Bildschirms oder Druckers. Es gibt einfache Bereiche, z. B. eine PictureBox ,
oder ein einzelnes Rechteck und komplexe Bereiche. Die Region klasse in GDI+ er-
möglicht die Definition einer benutzerdefinierten Form als Bereich, diese kann aus
Linien, Polygonen und Kurven bestehen.
Um mit der Clippingfunktion von GDI + zu zeichnen, ist ein Graphics objekt -
hier eine PictureBox picBild - und ein Regionobjekt myRegion erforderlich, wel-
ches die Beschreibung des Clippingbereiches enthält. Nach Setzen der Clip eigen-
schaft können Zeichenmethoden in Verbindung mit diesem Graphics objekt aufge-
rufen werden:
Dim picBild As System.Drawing.Graphics
picBild = frmGrafik.DefInstance.picBild.CreateGraphics()
picBild.Clip = myRegion
picBild.DrawLine(myPen, 0, 0, 200, 200)
Durch das Graphics objekt wird ein Clippingbereich verwaltet, der für alle von
diesem Graphics objekt gezeichneten Elemente gültig ist. Der Clipbereich stellt
eine der Eigenschaften der Graphics klasse dar. Alle von einem bestimmten Gra-
phics objekt ausgeführten Zeichenvorgänge sind auf den Clipbereich des jeweiligen
Graphics objekts beschränkt. Der Clipbereich wird durch Aufrufen der SetClip -
Methode festgelegt.
Für Abb. 9.2 wurde ein Pfad erstellt, der aus einem einzelnen Polygon besteht.
Anschließend wurde durch den Code ein auf diesem Pfad basierender Bereich de-
finiert und an die SetClip -Methode eines Graphics objekts übergeben. Die zwei
gezeichneten Zeichenfolgen sind an den Polygonrändern - dem Clippingbereich -
abgeschnitten.
Search WWH ::




Custom Search