Freigeben über


Abfüllregionen

Eine Anwendung füllt das Innere einer Region aus, indem die FillRgn-Funktion aufgerufen und ein Handle bereitgestellt wird, das einen bestimmten Pinsel identifiziert. Wenn eine Anwendung FillRgn aufruft, füllt das System den Bereich mit dem Pinsel, indem es den aktuellen Füllmodus für den angegebenen Gerätekontext verwendet. Es gibt zwei Füllmodi: Alternativ- und Wickelmodus. Die Anwendung kann den Füllmodus für einen Gerätekontext festlegen, indem die SetPolyFillMode-Funktion aufgerufen wird. Die Anwendung kann den aktuellen Füllmodus für einen Gerätekontext abrufen, indem sie die GetPolyFillMode-Funktion aufruft .

Die folgende Abbildung zeigt zwei identische Regionen: eine, die im alternativen Modus und die andere im Wickelmodus gefüllt wird.

Abbildung von zwei fünfzackigen Sternen: Einer füllte nur die Punkte, der andere vollständig

Alternativer Modus

Führen Sie den folgenden Test aus, um zu bestimmen, welche Pixel das System beim Angeben des alternativen Modus hervor hebt:

  1. Wählen Sie ein Pixel im Inneren der Region aus.
  2. Zeichnen Sie einen imaginären Strahl in positiver x-Richtung von diesem Pixel zur Unendlichkeit.
  3. Jedes Mal, wenn der Strahl eine Begrenzungslinie überschneidet, erhöhen Sie einen Count-Wert.

Das System hebt das Pixel hervor, wenn der Zählungswert eine ungerade Zahl ist.

Wickelmodus

Führen Sie den folgenden Test aus, um zu bestimmen, welche Pixel das System beim Angeben des Wickelmodus hervorhebung:

  1. Bestimmen Sie die Richtung, in der jede Begrenzungslinie gezeichnet wird.
  2. Wählen Sie ein Pixel im Inneren der Region aus.
  3. Zeichnen Sie einen imaginären Strahl in positiver x-Richtung vom Pixel zur Unendlichkeit.
  4. Jedes Mal, wenn der Strahl eine Begrenzungslinie mit einer positiven y-Komponente überschneidet, erhöhen Sie einen Zählungswert. Jedes Mal, wenn der Strahl eine Begrenzungslinie mit einer negativen y-Komponente überschneidet, verringern Sie den Count-Wert.

Das System hebt das Pixel hervor, wenn der Count-Wert nicht zero ist.