Regiões de Preenchimento
Um aplicativo preenche o interior de uma região chamando a função FillRgn e fornecendo um identificador que identifica um pincel específico. Quando um aplicativo chama FillRgn , o sistema preenche a região com o pincel usando o modo de preenchimento atual para o contexto do dispositivo especificado. Há dois modos de preenchimento: alternativo e sinuoso. O aplicativo pode definir o modo de preenchimento para um contexto de dispositivo chamando a função SetPolyFillMode . O aplicativo pode recuperar o modo de preenchimento atual para um contexto de dispositivo chamando a função GetPolyFillMode .
A ilustração a seguir mostra duas regiões idênticas: uma preenchida usando o modo alternativo e a outra preenchida usando o modo de enrolamento.
Modo alternativo
Para determinar quais pixels o sistema realça quando o modo alternativo é especificado, execute o seguinte teste:
- Selecione um pixel no interior da região.
- Desenhe um raio imaginário, na direção x positiva, desse pixel em direção ao infinito.
- Sempre que o raio cruza uma linha de limite, incremente um valor de contagem.
O sistema realçará o pixel se o valor de contagem for um número ímpar.
Modo de enrolamento
Para determinar quais pixels o sistema realça quando o modo de enrolamento é especificado, execute o seguinte teste:
- Determine a direção na qual cada linha de limite é desenhada.
- Selecione um pixel no interior da região.
- Desenhe um raio imaginário, na direção x positiva, do pixel em direção ao infinito.
- Sempre que o raio cruza uma linha de limite com um componente y positivo, incremente um valor de contagem. Sempre que o raio cruza uma linha de limite com um componente y negativo, decremente o valor de contagem.
O sistema realçará o pixel se o valor de contagem for diferente de zero.