Condividi tramite


Aree di riempimento

Un'applicazione riempie l'interno di un'area chiamando la funzione FillRgn e fornendo un handle che identifica un pennello specifico. Quando un'applicazione chiama FillRgn , il sistema riempie l'area con il pennello usando la modalità di riempimento corrente per il contesto del dispositivo specificato. Esistono due modalità di riempimento: alternativa e avvolgimento. L'applicazione può impostare la modalità di riempimento per un contesto di dispositivo chiamando la funzione SetPolyFillMode . L'applicazione può recuperare la modalità di riempimento corrente per un contesto di dispositivo chiamando la funzione GetPolyFillMode .

La figura seguente mostra due aree identiche: una riempita usando la modalità alternativa e l'altra riempita usando la modalità di carica.

illustrazione che mostra due stelle a cinque punti: una riempita solo nei punti, l'altra piena completamente

Modalità alternativa

Per determinare quali pixel evidenzia il sistema quando viene specificata la modalità alternativa, eseguire il test seguente:

  1. Selezionare un pixel all'interno dell'area.
  2. Disegna un raggio immaginario, nella direzione x positiva, da quel pixel verso l'infinito.
  3. Ogni volta che il raggio interseca una linea di limite, incrementa un valore di conteggio.

Il sistema evidenzia il pixel se il valore del conteggio è un numero dispari.

Modalità di avvolgimento

Per determinare quali pixel evidenzia il sistema quando viene specificata la modalità di caricamento, eseguire il test seguente:

  1. Determinare la direzione in cui viene disegnata ogni linea di limite.
  2. Selezionare un pixel all'interno dell'area.
  3. Disegna un raggio immaginario, nella direzione x positiva, dal pixel verso l'infinito.
  4. Ogni volta che il raggio interseca una linea di limite con un componente y positivo, incrementa un valore di conteggio. Ogni volta che il raggio interseca una linea di limite con un componente y negativo, decrementare il valore del conteggio.

Il sistema evidenzia il pixel se il valore del conteggio è diverso da zero.