Sobre

Marching Squares

Marching Squares é um algoritmo de computação gráfica usado para extrair contornos de campos escalares 2D. É uma versão 2D do algoritmo Marching Cubes 3D, usado para visualizar dados científicos e criar efeitos visuais.

Algoritmo Principal

O algoritmo funciona assim:

  1. Grade: Divide o espaço em uma grade de células quadradas
  2. Valores: Calcula um valor escalar para cada vértice da célula (usando ruído de Perlin)
  3. Configuração: Determina qual das 16 configurações possíveis a célula tem (baseado em quais vértices estão acima/abaixo do limiar)
  4. Contorno: Desenha linhas conectando os pontos de intersecção nas arestas

Equações Implementadas

No código:

// Para cada célula na grade
for each cell (i, j) {
  // Obtém valores dos 4 vértices
  topLeft = noise(x, y)
  topRight = noise(x + cellSize, y)
  bottomLeft = noise(x, y + cellSize)
  bottomRight = noise(x + cellSize, y + cellSize)
  
  // Determina configuração (0-15)
  config = (topLeft > threshold ? 8 : 0) +
           (topRight > threshold ? 4 : 0) +
           (bottomRight > threshold ? 2 : 0) +
           (bottomLeft > threshold ? 1 : 0)
  
  // Desenha linhas baseado na configuração
  drawLines(config, cell)
}

Complexidade de Compreensão

Nível: Intermediário a Avançado

  • Conceitos necessários: Campos escalares, ruído de Perlin, interpolação, lookup tables
  • Matemática: Interpolação linear, campos escalares, geometria computacional
  • Programação: Lookup tables, processamento de grade, otimização

Referências e Recursos para Estudo

Artigos e Documentação

Tutoriais e Código

Aprofundamento Matemático

Visualizações Interativas

Arquivo do processo

Todas as gerações — incluindo as ruins — fazem parte do processo.

16quadros