Régions de remplissage
Une application remplit l’intérieur d’une région en appelant la fonction FillRgn et en fournissant une poignée qui identifie un pinceau spécifique. Lorsqu’une application appelle FillRgn , le système remplit la région avec le pinceau à l’aide du mode de remplissage actuel pour le contexte d’appareil spécifié. Il existe deux modes de remplissage : alterner et enroulement. L’application peut définir le mode de remplissage pour un contexte d’appareil en appelant la fonction SetPolyFillMode . L’application peut récupérer le mode de remplissage actuel pour un contexte d’appareil en appelant la fonction GetPolyFillMode .
L’illustration suivante montre deux régions identiques : l’une remplie à l’aide d’un mode alternatif et l’autre en mode de reroulement.
Mode alternatif
Pour déterminer les pixels que le système met en surbrillance quand un mode alternatif est spécifié, effectuez le test suivant :
- Sélectionnez un pixel à l’intérieur de la région.
- Dessinez un rayon imaginaire, dans la direction X positive, de ce pixel vers l’infini.
- Chaque fois que le rayon croise une ligne limite, incrémentez une valeur de nombre.
Le système met en surbrillance le pixel si la valeur du nombre est un nombre impair.
Mode enroulement
Pour déterminer les pixels mis en évidence par le système lors de la spécification du mode d’enroulement, effectuez le test suivant :
- Déterminez la direction dans laquelle chaque ligne limite est dessinée.
- Sélectionnez un pixel à l’intérieur de la région.
- Dessinez un rayon imaginaire, dans la direction X positive, du pixel vers l’infini.
- Chaque fois que le rayon croise une ligne limite avec un composant y positif, incrémentez une valeur de nombre. Chaque fois que le rayon croise une ligne limite avec un composant y négatif, décrémentez la valeur du nombre.
Le système met en surbrillance le pixel si la valeur du nombre est différente de zéro.