Sobre
Curva de Hilbert
A curva de Hilbert é uma curva de preenchimento de espaço contínua que visita cada ponto de um quadrado. Foi descoberta por David Hilbert em 1891 e é gerada recursivamente usando um sistema L.
Algoritmo Principal
A curva de Hilbert é gerada usando um sistema L com as seguintes regras:
Axioma: X
Regras:
X → -YF+XFX+FY-Y → +XF-YFY-FX+
Interpretação:
F: Move para frente e desenha+: Rotaciona 90° à direita-: Rotaciona 90° à esquerdaX,Y: Variáveis (não desenham, apenas controlam a estrutura)
Equações Implementadas
No código:
- Geração: Aplica as regras iterativamente (geralmente 10 iterações)
- Desenho: Interpreta a string resultante como comandos de turtle graphics
if (char == 'F'): drawLine(length) if (char == '+'): rotate(-90°) if (char == '-'): rotate(90°)
A curva preenche progressivamente um espaço quadrado, dobrando a resolução a cada iteração.
Complexidade de Compreensão
Nível: Intermediário
- Conceitos necessários: L-Systems, recursão, turtle graphics, curvas de preenchimento de espaço
- Matemática: Geometria fractal, teoria de espaço de preenchimento
- Programação: Manipulação de strings, recursão, transformações geométricas
Referências e Recursos para Estudo
Artigos e Documentação
- Wikipedia - Hilbert Curve - Visão geral completa
- MathWorld - Hilbert Curve - Definição matemática
- Space-Filling Curves - Curvas de preenchimento de espaço
Tutoriais e Código
- The Coding Train - Hilbert Curve - Tutorial sobre L-Systems
- Rosetta Code - Hilbert Curve - Implementações
- Paul Bourke - Space Filling Curves - Recursos
Aprofundamento Matemático
- The Algorithmic Beauty of Plants - Livro sobre L-systems
- Fractal Geometry - Falconer - Geometria fractal
Visualizações Interativas
- Hilbert Curve Explorer - Explorador interativo
- Space-Filling Curves - Visualizações
Arquivo do processo
Todas as gerações — incluindo as ruins — fazem parte do processo.
3quadros