Delen via


Regio's vullen

Een toepassing vult het interieur van een regio door de FillRgn--functie aan te roepen en een handle te leveren die een specifieke kwast identificeert. Wanneer een toepassing FillRgn oproept, vult het systeem het gebied met de kwast voor de opgegeven apparaatcontext met behulp van de huidige vulmodus. Er zijn twee opvulmodi: alternerend en windend. De toepassing kan de vulmodus voor een apparaatcontext instellen door de functie SetPolyFillMode aan te roepen. De toepassing kan de huidige opvulmodus voor een apparaatcontext ophalen door de functie GetPolyFillMode aan te roepen.

In de volgende afbeelding ziet u twee identieke regio's: één gevuld met de alternatieve modus en de andere gevuld met de wikkelmodus.

afbeelding met twee vijfpuntige sterren: één waarvan alleen de punten gevuld zijn, de andere volledig gevuld

Alternatieve modus

Voer de volgende test uit om te bepalen welke pixels het systeem markeert wanneer de alternatieve modus is opgegeven:

  1. Selecteer een pixel binnen de binnenkant van het gebied.
  2. Teken een imaginaire straal, in de positieve x-richting, van die pixel naar oneindigheid.
  3. Telkens wanneer de straal een grenslijn doorkruist, moet u een tellingswaarde verhogen.

Het systeem markeert de pixel als de tellingswaarde een oneven getal is.

Wikkelmodus

Voer de volgende test uit om te bepalen welke pixels het systeem markeert wanneer de wikkelmodus is opgegeven:

  1. Bepaal de richting waarin elke grenslijn wordt getekend.
  2. Selecteer een pixel binnen de binnenkant van het gebied.
  3. Teken een imaginaire straal, in de positieve x-richting, van de pixel naar oneindig.
  4. Telkens wanneer de ray een grenslijn met een positief y-onderdeel doorkruist, wordt een tellingswaarde verhoogd. Telkens wanneer de straal een grenslijn met een negatieve y-component doorkruist, wordt de tellingswaarde verlaagd.

Het systeem markeert de pixel als de tellingswaarde niet-nul is.