Clipping (Computergrafik)
# Clipping (Computergrafik)

Als Clipping oder Abschneiden (englisch to clip = „abschneiden“, „kappen“) bezeichnet man in der Computergrafik das Abschneiden von Grundobjekten am Rand eines gewünschten Bildschirmausschnittes oder Fensters. Ein Fenster kann dabei ein beliebiges Polygon sein.

## Clipping von Strecken

### Am Rechteckfenster

Gegeben sind die beiden Endpunkte einer Strecke $P=(x_{p},y_{p}),Q=(x_{q},y_{q})\in \mathbb {R} ^{2}$ und ein Fenster $\Omega =[x_{\min },x_{\max }]\times [y_{\min },y_{\max }]\subset \mathbb {R} ^{2}$. Ziel ist es nun, den Teil der Strecke ${\overline {PQ}}$ zu bestimmen, der sich innerhalb des Rechteckfensters befindet.

Es sind vier Fälle möglich:

* $P$ und $Q$ liegen im Rechteckfenster. Die gesamte Gerade ist zu zeichnen (grüne Strecke).
* $P$ und $Q$ liegen außerhalb des Rechteckfensters, die Gerade verläuft zum Teil jedoch durch das Rechteckfenster. Die beiden Schnittpunkte müssen berechnet werden und der Teil zwischen den beiden Schnittpunkten ist zu zeichnen (blaue Strecke).
* $P$ oder $Q$ liegt im Fenster und der jeweils andere Punkt außerhalb. In diesem Fall wird der Teil vom im Fenster liegenden Punkt bis zum Schnittpunkt mit der Fensterkante gezeichnet (gelbe Strecke).
* $P$ und $Q$ liegen so außerhalb des Fensters, dass nichts zu zeichnen ist (rote Strecke).

Solche Probleme lösen die Algorithmen von Cohen-Sutherland, Cyrus-Beck und von Liang-Barsky.

### An beliebigen Polygonen

Es liegt wiederum eine Strecke mit Endpunkte $P$ und $Q$ wie oben vor. Zur Berechnung der Anteile, die innerhalb eines Polygons liegen, werden die Schnittpunkte der Strecke mit dem Polygonfenster unter Berücksichtigung des Inside Test und des Max-Min Test bestimmt. Diese Vorgehensweise vollzieht der Scanline-Algorithmus zum zeilenweisen Zeichnen von Polygonen. Es werden Zeile für Zeile Punkte $P$ und $Q$ mit $y_{p}=y_{q}$ gewählt, die sich links oder rechts neben den Polygon befinden. Durch Clipping dieser Linie am Polygon entsteht zeilenweise der zu zeichnende Polygonanteil einer kompletten Zeile.

## Polygonclipping

Polygonclipping ist das Clipping eines beliebigen Polygons bezüglich eines Rechteckfensters oder beliebigen Polygons. Es treten verschiedene Situationen auf:

* Kanten des Polygons müssen vollständig, teilweise oder gar nicht übernommen werden,
* Neue Kanten müssen aufgenommen werden,
* Aus einem Polygon können beim Clipping mehrere Polygone entstehen.

Diese Probleme deckt der Algorithmus von Sutherland-Hodgman ab. Er betrachtet dabei ein Polygon als eine Sequenz von Punkten, die er abläuft und dann

* den Punkt übernimmt,
* den Punkt als Schnittpunkt des Polygons mit dem Fensterpolygon neu berechnet,
* den Punkt entfernt.
