Algoritmos são sequências de passos bem definidos usadas para resolver
problemas ou executar tarefas. Eles dizem exatamente o que fazer,
em que ordem e quando parar.
Ideia central:
Um computador não pensa — ele apenas segue algoritmos.
Algoritmos estão presentes em diversas situações do dia a dia, como:
rotas de GPS, buscas na Internet, jogos, redes sociais e sistemas de recomendação.
Todo algoritmo possui:
• Entrada (dados iniciais)
• Processamento (regras e decisões)
• Saída (resultado)
• Fim (não pode executar indefinidamente)
Programar é transformar algoritmos em código. As linguagens de programação
são apenas diferentes formas de escrever os mesmos algoritmos.
Um Algoritmo Simples em Ação (Busca Linear)
O algoritmo percorre os elementos um a um até encontrar o valor desejado.
Valor Desejado
Ponteiro de Busca
Valor Encontrado
Objetivo desta página:
Visualizar algoritmos clássicos passo a passo para facilitar a compreensão
de como eles funcionam internamente.
01. BUBBLE SORT (Ordenação por Bolha)
O Bubble Sort compara elementos adjacentes e os troca se estiverem na ordem errada. O processo se repete até que não haja mais trocas necessárias.
Complexidade: O(n²) no pior caso Conceito: Elementos maiores "flutuam" para o final como bolhas
500ms
Comparações
0
Trocas
0
Não ordenado
Comparando
Trocando
Ordenado
02. BINARY SEARCH (Busca Binária)
A busca binária divide repetidamente o array ao meio, eliminando metade dos elementos a cada iteração. Funciona apenas em arrays ordenados.
Complexidade: O(log n) Pré-requisito: Array deve estar ordenado Conceito: Divide e conquista
1000ms
Elemento Buscado
-
Iterações
0
Status
-
03. DIJKSTRA (Menor Caminho)
O algoritmo de Dijkstra encontra o caminho mais curto entre dois pontos em um grafo ponderado. Clique para adicionar/remover paredes.
Complexidade: O((V + E) log V) Aplicação: GPS, roteamento de redes, jogos Conceito: Explora caminhos do mais curto ao mais longo
50ms
Células Visitadas
0
Distância do Caminho
0
Início
Fim
Parede
Visitado
Caminho
04. N-QUEENS (Backtracking)
O problema das N-Rainhas usa backtracking para posicionar N rainhas em um tabuleiro NxN sem que se ataquem.
Complexidade: O(N!) Técnica: Backtracking (tentativa e erro inteligente) Conceito: Explora possibilidades e volta atrás quando necessário
200ms
Tentativas
0
Backtracks
0
Rainhas Colocadas
0
05. FRACTAIS (Padrões Recursivos)
Fractais são padrões geométricos que se repetem em diferentes escalas. Cada iteração adiciona mais detalhes ao desenho através de recursão.
Conceito: Auto-similaridade - o padrão se repete em escalas menores Técnica: Recursão matemática Aplicações: Computação gráfica, compressão de imagens, natureza
Triângulo de Sierpinski
5
Floco de Neve de Koch
4
Triângulos (Sierpinski)
0
Segmentos (Koch)
0
Curiosidade: O Triângulo de Sierpinski tem área zero mas perímetro infinito! O Floco de Koch tem perímetro infinito mas área finita.
06. MAZE GENERATION (Geração de Labirinto)
O algoritmo de Recursive Backtracking cria labirintos perfeitos "escavando" caminhos através de uma grade. Cada labirinto tem um caminho único entre quaisquer dois pontos.
Complexidade: O(n × m) onde n e m são as dimensões da grade Técnica: Backtracking com pilha (DFS) Resultado: Labirinto perfeito (sem loops, sem áreas isoladas)
20ms
Células Visitadas
0
Backtracks
0
Tamanho da Grade
25×25
Parede
Caminho
Explorando
Início
Fim
Solução
Como funciona: O algoritmo começa em uma célula aleatória e "escava" caminhos escolhendo direções não visitadas. Quando não há mais direções disponíveis, ele volta atrás (backtrack) até encontrar uma célula com vizinhos não visitados.
07. CONVEX HULL (Envoltório Convexo - Graham Scan)
O algoritmo de Graham Scan encontra o menor polígono convexo que envolve todos os pontos de um conjunto. É como colocar um elástico em volta de pregos espalhados.
Complexidade: O(n log n) devido à ordenação inicial Técnica: Ordenação polar + verificação de orientação Aplicações: Computação gráfica, visão computacional, GIS
500ms
20
Total de Pontos
0
Pontos no Envoltório
0
Pontos Verificados
0
Pontos Internos
Ponto Âncora (mais baixo)
Ponto Atual
Pontos no Envoltório
Polígono Final
Como funciona: O algoritmo primeiro encontra o ponto mais baixo (âncora), ordena os outros pontos por ângulo polar, e então "varre" os pontos descartando aqueles que fazem curvas para dentro (não convexos).
08. FLOOD FILL (Preenchimento)
O algoritmo Flood Fill preenche uma área conectada com uma nova cor, como a ferramenta "balde de tinta" em programas de desenho. Clique em qualquer célula para iniciar o preenchimento!
Complexidade: O(n × m) onde n e m são as dimensões da grade Técnica: DFS (recursivo) ou BFS (fila) Aplicações: Editores de imagem, jogos (campo minado), seleção de áreas
20ms
Células Preenchidas
0
Células na Fila
0
Modo Atual
4 Dir
Vazio
Obstáculo
Processando
Preenchido
Instruções: • Clique esquerdo em uma célula para preencher a área
• Clique direito para adicionar/remover obstáculos (antes de preencher)
• Experimente os dois modos para ver a diferença!
• 4 direções: apenas cima, baixo, esquerda, direita
• 8 direções: inclui diagonais
09. VORONOI DIAGRAM (Diagrama de Voronoi)
O Diagrama de Voronoi divide o espaço em regiões, onde cada região contém todos os pontos mais próximos de um ponto-semente específico. Cada pixel é colorido de acordo com qual semente está mais próxima.
Complexidade: O(n log n) para construção otimizada Conceito: Partição espacial baseada em proximidade Aplicações: Navegação, planejamento urbano, biologia celular, jogos
10
Sementes
0
Pixels Processados
0
Progresso
0%
Como funciona: Para cada pixel da imagem, o algoritmo calcula a distância até todas as sementes e atribui o pixel à região da semente mais próxima. Cada região tem uma cor única.
Curiosidade: O Diagrama de Voronoi aparece naturalmente em muitos fenômenos: células em tecidos biológicos, territórios de animais, áreas de influência de lojas, e até na formação de cristais!
10. BFS TREE (Busca em Largura)
A Busca em Largura (BFS) explora um grafo/árvore nível por nível, visitando todos os vizinhos antes de avançar para o próximo nível. É como uma "onda" se expandindo a partir da raiz.
Complexidade: O(V + E) onde V = vértices e E = arestas Estrutura de Dados: Fila (FIFO - First In, First Out) Aplicações: Menor caminho sem pesos, crawler web, redes sociais
500ms
Nível Atual
0
Nós Visitados
0
Nós na Fila
0
Não Visitado
Na Fila
Processando
Visitado
Raiz/Início
BFS vs DFS: Enquanto o DFS vai o mais fundo possível antes de voltar (usa pilha), o BFS explora todos os vizinhos do nível atual antes de avançar (usa fila). BFS garante o menor caminho em grafos não ponderados!
11. GAME OF LIFE (Jogo da Vida)
O Game of Life de John Conway é um autômato celular onde padrões complexos emergem de regras simples. Cada célula vive, morre ou nasce baseado em seus vizinhos.
Regras:
1. Célula viva com 2-3 vizinhos vivos → sobrevive
2. Célula viva com menos de 2 ou mais de 3 vizinhos → morre
3. Célula morta com exatamente 3 vizinhos vivos → nasce Aplicações: Teoria da computação, arte generativa, simulação
200ms
Geração
0
Células Vivas
0
População Máxima
0
Célula Morta
Célula Viva
Nasceu (nova)
Morreu (última geração)
Instruções: Clique nas células para ativá-las/desativá-las. Carregue padrões clássicos ou crie os seus próprios!
Dica: O "Glider Gun" cria Gliders infinitamente!
Curiosidade: O Game of Life é Turing-completo, o que significa que pode simular qualquer computador! Padrões podem funcionar como portas lógicas, memória e até computadores completos.
12. WAVE FUNCTION COLLAPSE (Colapso de Função de Onda)
O Wave Function Collapse é um algoritmo de geração procedural que cria padrões coerentes escolhendo possibilidades locais e propagando restrições. Cada célula "colapsa" de todas as possibilidades para uma única escolha.
Conceito: Inspirado na mecânica quântica (superposição → colapso) Técnica: Backtracking com propagação de restrições Aplicações: Geração de mapas, texturas, níveis de jogos, arte generativa
30ms
Células Colapsadas
0
Entropia Mínima
-
Progresso
0%
Não Colapsado (superposição)
Colapsando Agora
Propagando Restrições
Como funciona: 1. Todas as células começam em "superposição" (todas possibilidades)
2. Escolhe célula com menor entropia (menos possibilidades)
3. "Colapsa" para uma escolha aleatória válida
4. Propaga restrições para vizinhos (remove possibilidades inválidas)
5. Repete até todas células estarem colapsadas
Padrões Disponíveis: • Simples: Preto, branco e cinza com regras básicas
• Terreno: Água, areia, grama, floresta, montanha
• Tubos: Sistema de conexões (cria labirintos orgânicos)
13. FRACTAIS - MANDELBROT & JULIA SET
Os conjuntos de Mandelbrot e Julia são fractais complexos gerados por iterações de funções matemáticas no plano complexo. Cada pixel representa um número complexo e é colorido baseado em quantas iterações leva para "escapar".
Mandelbrot: z → z² + c (c varia, z₀ = 0) Julia Set: z → z² + c (c fixo, z₀ varia) Conceito: Iteração de números complexos, auto-similaridade infinita Propriedade: Zoom infinito revela detalhes cada vez mais complexos
Mandelbrot Set
100
Clique para dar zoom!
Julia Set
100
-0.7
0.27
Status Mandelbrot
Pronto
Zoom Mandelbrot
1x
Status Julia
Pronto
Zoom Julia
1x
Gradiente de Escape (preto = dentro do conjunto)
Como funcionam: • Para cada pixel (x,y), converte para número complexo
• Itera z → z² + c até |z| > 2 ou atingir max iterações
• Cor baseada em quantas iterações levou para escapar
• Preto = não escapou (dentro do conjunto)
Interatividade: • Mandelbrot: Clique em qualquer lugar para dar zoom naquela região!
• Julia: Ajuste os sliders para explorar diferentes conjuntos de Julia
• Dica: Aumente iterações para mais detalhes (mas demora mais)
Curiosidade Matemática: O conjunto de Mandelbrot tem área finita (≈1.506) mas perímetro infinito! Além disso, todo conjunto de Julia está "codificado" no Mandelbrot - cada ponto do Mandelbrot corresponde a um Julia Set específico.
14. QUICK SORT (Ordenação Rápida)
O Quick Sort escolhe um pivô e particiona o array, colocando elementos menores à esquerda e maiores à direita, recursivamente.
Complexidade: O(n log n) em média, O(n²) no pior caso Técnica: Divide e conquista Conceito: Particiona o array em torno de um pivô
300ms
Comparações
0
Trocas
0
Recursões
0
Não ordenado
Pivô
Comparando
Ordenado
15. REGRESSÃO LINEAR (Machine Learning)
A Regressão Linear é um algoritmo fundamental de Machine Learning que encontra a melhor linha reta para prever valores baseado em dados. Usa o método de Gradiente Descendente para minimizar o erro.
Objetivo: Encontrar y = mx + b que melhor se ajusta aos dados Técnica: Gradiente Descendente (ajusta m e b iterativamente) Métrica: MSE (Mean Squared Error) - erro médio quadrático Aplicações: Previsões, análise de tendências, ciência de dados
50ms
0.001
20
Época
0
Erro (MSE)
-
Coeficiente (m)
-
Intercepto (b)
-
Pontos de Dados
Linha de Regressão
Linhas de Erro
Como funciona o Gradiente Descendente: 1. Inicia com valores aleatórios de m e b
2. Calcula o erro (diferença entre previsão e valor real)
3. Ajusta m e b na direção que reduz o erro
4. Repete até convergir (erro mínimo)
Fórmulas: • Previsão: ŷ = mx + b
• Erro: MSE = Σ(y - ŷ)² / n
• Atualização: m = m - α × ∂MSE/∂m
Interatividade: • Clique no gráfico para adicionar seus próprios pontos!
• Ajuste o ruído para dados mais/menos dispersos
• Ajuste a taxa de aprendizado (muito alta = instável, muito baixa = lento)
• Observe a linha vermelha se ajustando aos dados
16. L-SYSTEMS (Lindenmayer Systems)
L-Systems são sistemas de reescrita que geram padrões fractais complexos através de regras simples. Criados para modelar o crescimento de plantas, criam estruturas orgânicas realistas.
Conceito: String → Regras de substituição → Interpretação gráfica Técnica: Gramática formal + Gráfico Tartaruga Aplicações: Modelagem de plantas, arte generativa, jogos, arquitetura
4
String Atual
0
Segmentos
0
Status
Pronto
F = Desenha linha (frente)
+ = Gira à direita
− = Gira à esquerda
[ = Salva posição
] = Volta posição
Como funciona: 1. Axioma: String inicial (ex: "F")
2. Regras: Substituições (ex: F → FF+[+F-F-F]-[-F+F+F])
3. Iteração: Aplica regras repetidamente
4. Renderização: Interpreta string como comandos gráficos
Exemplos de Regras: • Árvore: F → FF+[+F-F-F]-[-F+F+F]
• Planta: X → F+[[X]-X]-F[-FX]+X
• Dragão: X → X+YF+, Y → -FX-Y
Cada iteração torna o padrão mais complexo e orgânico!
Curiosidade: L-Systems foram inventados pelo biólogo Aristid Lindenmayer em 1968 para modelar o crescimento de algas. Hoje são usados em jogos para gerar florestas inteiras proceduralmente!
17. DELAUNAY TRIANGULATION (Triangulação de Delaunay)
A Triangulação de Delaunay conecta pontos criando triângulos de forma ótima, maximizando o ângulo mínimo. É o dual geométrico do Diagrama de Voronoi e forma a base de muitas aplicações em computação gráfica.
Complexidade: O(n log n) com algoritmo Bowyer-Watson Propriedade: Maximiza o menor ângulo (evita triângulos "finos") Relação: Dual do Voronoi - cada aresta de Voronoi ⊥ aresta de Delaunay Aplicações: Malhas 3D, terrenos, interpolação, elementos finitos
500ms
15
Pontos
0
Triângulos
0
Arestas
0
Pontos
Arestas de Delaunay
Triângulos
Voronoi (quando visível)
Algoritmo Bowyer-Watson: 1. Cria super-triângulo contendo todos os pontos
2. Para cada ponto:
a) Encontra triângulos cujo círculo circunscrito contém o ponto
b) Remove esses triângulos ("bad triangles")
c) Reconecta o polígono resultante ao novo ponto
3. Remove triângulos conectados ao super-triângulo
Propriedades Únicas: • Critério de Delaunay: Nenhum ponto está dentro do círculo circunscrito de qualquer triângulo
• Maxmin Angle: Maximiza o menor ângulo de todos os triângulos
• Dualidade: Cada aresta de Voronoi cruza perpendicularmente uma aresta de Delaunay
• Unicidade: Para pontos em posição geral, a triangulação é única
Curiosidade: A Triangulação de Delaunay é usada para criar terrenos em jogos 3D! Cada triângulo vira uma face, e a altura de cada ponto define a elevação. É também essencial em análise de elementos finitos (engenharia).
18. KNN - K-NEAREST NEIGHBORS (Machine Learning)
O algoritmo KNN classifica pontos baseado nos K vizinhos mais próximos. É um algoritmo de aprendizado supervisionado simples mas poderoso usado em classificação e regressão. Clique no canvas para adicionar pontos!
Complexidade: O(n) para cada classificação Conceito: "Diga-me quem são seus vizinhos e te direi quem você é" Aplicações: Reconhecimento de padrões, sistemas de recomendação, diagnósticos
3
10ms
Pontos Classe A
0
Pontos Classe B
0
Pontos Classe C
0
Pixels Classificados
0
Classe A (Vermelho)
Classe B (Azul)
Classe C (Verde)
Ponto a Classificar
Vizinhos mais próximos
Como funciona: 1. Treinamento: Armazena todos os pontos de dados com suas classes
2. Classificação: Para um novo ponto:
a) Calcula distância para todos os pontos conhecidos
b) Seleciona os K vizinhos mais próximos
c) Vota pela classe mais comum entre os K vizinhos
3. Resultado: O ponto recebe a classe vencedora
Escolhendo K: • K pequeno (1-3): Fronteiras mais detalhadas, sensível a ruído
• K médio (5-7): Balanceado, funciona bem na maioria dos casos
• K grande (9-15): Fronteiras mais suaves, mais robusto a outliers
• Dica: Use K ímpar para evitar empates em problemas binários
Interatividade: • Clique esquerdo: Adiciona ponto da classe selecionada
• Clique direito: Classifica o ponto clicado e mostra os K vizinhos
• Classificar Área: Pinta todo o canvas mostrando as regiões de decisão
• Experimente: Mude o valor de K e veja como as fronteiras mudam!
19. SUDOKU SOLVER (Backtracking)
O Sudoku Solver usa backtracking para resolver quebra-cabeças de Sudoku. O algoritmo tenta números de 1-9 em cada célula vazia, verificando se é válido, e volta atrás quando encontra um beco sem saída.
Complexidade: O(9^n) onde n é o número de células vazias Técnica: Backtracking (tentativa e erro inteligente) Conceito: Tenta todas as possibilidades sistematicamente, desfazendo escolhas ruins Aplicações: Puzzles, problemas de satisfação de restrições, scheduling
50ms
Tentativas
0
Backtracks
0
Células Preenchidas
0
Status
Aguardando
Célula Vazia
Números Iniciais
Tentando
Correto
Backtracking
Regras do Sudoku: • Cada linha deve conter números de 1 a 9 sem repetição
• Cada coluna deve conter números de 1 a 9 sem repetição
• Cada quadrante 3×3 deve conter números de 1 a 9 sem repetição
Como funciona o algoritmo: 1. Encontra célula vazia: Procura a próxima posição não preenchida
2. Tenta números 1-9: Para cada número, verifica se é válido
3. Validação: Checa linha, coluna e quadrante 3×3
4. Recursão: Se válido, continua para próxima célula
5. Backtracking: Se não há solução, volta e tenta outro número
6. Sucesso: Quando todas células estão preenchidas corretamente
Interatividade: • Clique nas células: Digite números de 1-9 para criar seu próprio puzzle
• Delete/Backspace: Remove número da célula
• Níveis: Fácil (40 números), Médio (30 números), Difícil (25 números)
• Modos de visualização: Veja diferentes aspectos do algoritmo
20. SIEVE OF ERATOSTHENES (Crivo de Eratóstenes)
O Crivo de Eratóstenes é um algoritmo antigo e eficiente para encontrar todos os números primos até um determinado limite. Ele funciona eliminando múltiplos de cada primo encontrado.
Complexidade: O(n log log n) Criador: Eratóstenes de Cirene (~276-194 a.C.) Conceito: Marcar múltiplos de cada primo como compostos Aplicações: Criptografia, teoria dos números, fatoração
100
30ms
Primo Atual
-
Primos Encontrados
0
Números Eliminados
0
Progresso
0%
Não processado
Primo atual
Primo
Sendo eliminado
Composto (eliminado)
Como funciona: 1. Lista inicial: Começa com todos os números de 2 até N
2. Encontra primo: O menor número não marcado é primo
3. Elimina múltiplos: Marca todos os múltiplos desse primo como compostos
4. Repete: Vai para o próximo número não marcado
5. Termina: Quando chega em √N, todos os primos foram encontrados
Por que funciona: • Todo número composto tem pelo menos um divisor primo ≤ √N
• Ao eliminar múltiplos de cada primo, sobram apenas os primos
• É muito mais eficiente que testar cada número individualmente
Espiral de Ulam: Padrão descoberto por Stanisław Ulam em 1963. Ao organizar números em espiral, os primos formam linhas diagonais misteriosas! Isso sugere padrões ainda não completamente compreendidos na distribuição de números primos.
Curiosidades: • Eratóstenes também calculou o tamanho da Terra com incrível precisão
• O algoritmo tem mais de 2.200 anos, mas ainda é usado hoje
• É o método mais eficiente para encontrar TODOS os primos até N
• Números primos são fundamentais para criptografia moderna (RSA)
21. FIBONACCI (Sequência)
A sequência de Fibonacci é uma série onde cada número é a soma dos dois anteriores (0, 1, 1, 2, 3, 5, 8, 13...). A razão entre números consecutivos se aproxima da razão áurea (≈1.618), criando padrões encontrados na natureza.
Fórmula: F(n) = F(n-1) + F(n-2), onde F(0) = 0 e F(1) = 1 Complexidade: O(n) iterativo, O(2ⁿ) recursivo ingênuo Na natureza: Pétalas de flores, espirais de conchas, galáxias, girassóis
300ms
10
Último Número
-
Razão Áurea Atual
-
Iterações
0
Visualização: Mostra os números como barras crescentes com gradiente de cores.
• A razão entre F(n) e F(n-1) converge para φ (phi) ≈ 1.618034
Curiosidade: A sequência de Fibonacci aparece em inúmeros lugares na natureza: no arranjo de folhas em plantas (filotaxia), no número de pétalas de flores, na espiral de conchas do nautilus, na estrutura de galáxias espirais e até na reprodução de coelhos!
22. PERLIN NOISE (Ruído Coerente)
Perlin Noise é um algoritmo de geração de ruído gradiente criado por Ken Perlin em 1983. Diferente do ruído aleatório, o Perlin Noise produz valores suaves e naturais, muito usado em texturas procedurais, terrenos e efeitos visuais.
Característica: Gera valores suaves e contínuos (não totalmente aleatório) Aplicações: Geração de terrenos, nuvens, texturas de madeira, fogo, água Diferença: Ruído aleatório = pixels desconexos | Perlin = transições suaves
50
4
0.5
Pixels Processados
0
Progresso
0%
Tempo (frame)
0.00
Parâmetros: • Escala: Controla o "zoom" - valores menores = mais detalhes
• Octaves: Camadas de ruído sobrepostas - mais octaves = mais detalhes
• Persistência: Quanto cada octave influencia - valores maiores = mais rugoso
Curiosidade: Ken Perlin ganhou um Oscar Técnico em 1997 por inventar o Perlin Noise! É usado em praticamente todos os filmes e jogos modernos para criar terrenos, nuvens, fogo, e texturas naturais. Filmes como Tron (1982) e jogos como Minecraft usam variações deste algoritmo.
23. FOURIER TRANSFORM (Transformada de Fourier)
A Transformada de Fourier decompõe um sinal complexo em suas componentes de frequência. É como "ouvir" quais notas musicais compõem um som - transforma dados do domínio do tempo para o domínio da frequência.
Conceito: Qualquer onda pode ser construída somando ondas senoidais simples Aplicações: Processamento de áudio, compressão de imagem (JPEG), comunicações, análise de sinais Descoberta: Joseph Fourier (1822) - revolucionou matemática e engenharia
Domínio do Tempo (Onda Original)
Domínio da Frequência (Espectro)
Ondas Componentes
Número de Ondas
0
Frequência Dominante
-
Amplitude Total
0.00
Onda Composta (soma de todas)
Ondas Individuais (transparentes)
Barras de Frequência (cada cor = uma onda)
Como funciona: • Domínio do Tempo: Mostra o sinal como ele varia ao longo do tempo
• Domínio da Frequência: Mostra quais frequências compõem o sinal
• Cada barra no espectro representa a intensidade de uma frequência específica
• A altura das barras indica a amplitude (força) daquela frequência
Curiosidade: A Transformada de Fourier é uma das equações mais importantes da matemática! Ela permite que o Shazam identifique músicas, que o JPEG comprima imagens, que o WiFi transmita dados, e até que médicos vejam dentro do corpo com ressonância magnética (MRI). Sem Fourier, não teríamos celulares, internet moderna ou música digital!
24. CIRCLE PACKING (Empacotamento de Círculos)
Circle Packing é um algoritmo que organiza círculos no espaço de forma que eles cresçam o máximo possível sem se sobrepor. O resultado é visualmente orgânico e matematicamente elegante, criando padrões que lembram bolhas, células ou espuma.
Algoritmo: Posiciona círculos aleatoriamente e os expande até tocarem outros círculos Aplicações: Design gráfico, visualização de dados, arte generativa, layout de interfaces Matemática: Baseado em detecção de colisão e geometria euclidiana
0.5
200
Círculos Ativos
0
Círculos Completos
0
Taxa de Preenchimento
0.0%
Maior Círculo
0
Como funciona: 1. Círculos são posicionados em locais válidos (sem sobreposição inicial)
2. Cada círculo cresce gradualmente a cada frame
3. Quando um círculo toca outro ou atinge a borda, para de crescer
4. O processo continua até todos os círculos estarem "completos"
• Detecção de Colisão: Usa distância euclidiana entre centros dos círculos
Curiosidade: O Circle Packing tem conexões profundas com matemática pura! O "Teorema do Circle Packing" (provado por Kenneth Stephenson) mostra que qualquer grafo planar pode ser representado por círculos tangentes. Isso conecta topologia, geometria e teoria dos grafos de forma elegante. Também aparece na natureza: bolhas de sabão, células biológicas e até na estrutura de frutas como romãs seguem princípios de empacotamento circular!
25. CHLADNI PATTERNS (Padrões de Chladni)
Os Padrões de Chladni são formações geométricas criadas por vibrações em placas. Quando uma placa vibra em diferentes frequências, partículas se acumulam nos nodos (pontos de vibração zero), formando padrões fascinantes.
Física: Baseado em ondas estacionárias e ressonância Equação: sin(n·x)·sin(m·y) + sin(m·x)·sin(n·y) Descoberta: Ernst Chladni (1787), "Pai da Acústica" Aplicações: Acústica, design de instrumentos musicais, arte sonora
3
4
400
50
Modo Atual (n, m)
3, 4
Frequência Teórica
-
Status
Pronto
Nodos (sem movimento)
Antinodos (máx. vibração)
Como funcionam: Quando uma placa vibra em certas frequências (modos normais), algumas áreas ficam paradas (nodos) enquanto outras vibram intensamente (antinodos). Partículas como areia se acumulam nos nodos, revelando os padrões.
Modos (n, m): Representam o número de linhas nodais nas direções horizontal e vertical. Maiores valores = padrões mais complexos.
Curiosidade: Estes padrões inspiraram artistas e cientistas por séculos! Podem ser vistos em tambores, pratos de violinos, e até na natureza (como nas manchas de animais). A frequência de ressonância é proporcional a √(n² + m²).