Preenchimento de Polígonos & Recorte (Rasterizer2D.cs)
O arquivo Rasterizer2D.cs implementa o preenchimento de polígonos côncavos e complexos e o recorte contra a janela de visualização.
1. Preenchimento por Varredura (Scanline Polygon Fill)
Seção intitulada “1. Preenchimento por Varredura (Scanline Polygon Fill)”Para preencher o interior de qualquer polígono geométrico linha por linha:
- Tabela de Arestas Ativas (AET): Guarda as arestas que cruzam a linha horizontal atual .
- Regra de Paridade (Par-Ímpar): Ordena os pontos de corte da linha em . Pinta os pixels entre o 1º e o 2º corte, pula do 2º ao 3º, e pinta do 3º ao 4º.
2. Algoritmo de Inundação (Flood Fill baseado em Fila)
Seção intitulada “2. Algoritmo de Inundação (Flood Fill baseado em Fila)”O Flood Fill (ferramenta de balde de tinta) substitui uma cor conectada por uma nova cor.
No nosso projeto, utilizamos uma Fila Explícita (Queue<Point>), garantindo estabilidade e memória suficiente para qualquer preenchimento.
3. Recorte de Linhas de Cohen-Sutherland (Outcodes de 4 bits)
Seção intitulada “3. Recorte de Linhas de Cohen-Sutherland (Outcodes de 4 bits)”O algoritmo divide o espaço em 9 regiões usando códigos binários de 4 bits [Cima, Baixo, Direita, Esquerda]:
- Totalmente Visível:
- Totalmente Invisível:
- Caso Contrário: Corta a linha na borda e recalcula o segmento restante.
Próximo Passo: Entre no módulo de Computação Gráfica 3D & Matrizes MVP.