Conjunto De Copo - Conjunto de Copo com 6 unidades 200ml de Vidro | Shopee Brasil
Conjunto de Copo com 6 unidades 200ml de Vidro | Shopee Brasil

O que é um conjunto de copo e como construí-lo na prática

Conjunto de copo é uma construção da geometria fractal que nasce a partir de um polígono regular — normalmente um triângulo equilátero — e de uma regra de substituição iterativa aplicada a cada lado. O resultado mais conhecido é o floco de neve de Koch, mas a ideia se generaliza para outras sementes polygonais e para diferentes proporções de corte. A figura cresce em complexidade a cada iteração, enquanto a área permanece limitada e o perímetro tende ao infinito.

Por que o nome conjunto de copo aparece

O termo surge de traduções e adaptações locais que tratam a estrutura como um “copo” ou “taça” geométrica formada pela justaposição de triângulos menores. Em textos mais antigos em português, encontrei “conjunto de copo” usado de forma intercambiável com “curva de Koch” quando o contexto era didático. Se você baixar materiais que citam essa nomenclatura, espere ver a mesma construção descrita com nomes diferentes.

A regra básica, explicada sem enrolação

Você pega um segmento e o divide em três partes iguais. Remove o trecho do meio e no seu lugar constrói um triângulo equilátero apontando para fora. Isso transforma um lado em quatro lados menores, cada um com um terço do comprimento original. Repete a mesma operação em todos os segmentos gerados. Após infinitas iterações, o limite dessa sequência de curvas fechadas é o conjunto de copo clássico. Se a semente for um triângulo equilátero e a regra for aplicada em cada aresta, o contorno resultante é o floco de neve. A região interna preenchida tem área finita, calculada a partir da série geométrica que soma as áreas dos triângulos acrescentados em cada passo.

Construção passo a passo para quem quer fazer agora

Se o objetivo é gerar a figura, o caminho mais direto é programar a regra de substituição. Vou descrever o fluxo que eu uso, porque ele evita os erros que aparecem quando a implementação é feita às pressas.

1. Defina a semente e o nível de iteração

Para o floco padrão, a semente é o triângulo equilátero cujos vértices podem ser, por exemplo, (0, 0), (1, 0) e (0.5, 3/2). Eu costumo travar o nível entre 5 e 7 para visualizações; acima disso, o custo computacional sobe rápido e o ganho visual é marginal. Se precisar de alta resolução para impressão, sobe para 8, mas aí já vale a pena usar GPU ou pré-computação.

2. Implemente a substituição de segmento

Cada segmento é tratado como um par ordenado de pontos. A função de substituição recebe esse par e devolve quatro novos pares, correspondentes aos quatrosegmentos da regla de Koch. Em código, isso fica simples: p1 (1/3) do vetor original
p2 vértice do triângulo equilátero externo, calculado a partir da rotação de 60° do vetor do meio
p3 e p4 os dois trechos finais

A parte chata é fazer o cálculo da rotação corretamente. A fórmula que euConfio é: Se o segmento vai de A a B, então:

Em coordenadas, se dx = Qx - Px e dy = Qy - Py, então o pico é (Px + dx/2 - dy*3/2, Py + dy/2 + dx*3/2). Esse detalhe é onde a maioria das implementações erra quando alguém copia trecho de vídeo aula sem conferir a convenção de sentido horário ou anti-horário.

👉 Clique no botão abaixo para saber mais sobre o assunto!

3. Aplique a substituição recursivamente

Mantenha uma lista de segmentos. Em cada iteração, percorra a lista e substitua cada elemento pelos quatro novos. O número de segmentos multiplica por quatro a cada passo, então o tamanho da lista cresce como 4^n. Para n = 6, são 4096 segmentos; para n = 7, são 16384. Ainda cabe na memória sem problema.

4. Feche a curva e renderize

Como a semente é um triângulo fechado, a aplicação da regra preserva o fechamento. Basta ligar o último ponto ao primeiro. Para preencher a área, use o algoritmo de contorno com preenchimento even-odd ou nonzero; ambos funcionam, mas o nonzero é mais estável quando a curva tem sobreposições visuais devido a aproximações numéricas em níveis altos.

Um problema real que eu encontrei e como resolvi

Num projeto em que eu precisava exportar o floco em SVG para corte a laser, os arquivos ficavam inchados e o cortador travava. O motivo era óbvio: a curva de nível 7 gera milhares de linhas quase colineares, e o SVG puro não otimiza isso. Minha solução foi simplificar a poligonal com o algoritmo de Douglas-Peucker, usando uma tolerância pequena mas suficiente para eliminar vértices redundantes sem deformar a geometria. Depois, reconstruí o preenchimento a partir da simplificação e o arquivo caiu de dezenas de megabytes para poucos quilobytes. O corte passou direto. A única cautela é validar visualmente depois da simplificação, porque tolerância alta demais apaga pequenos recortes que importam para peças que encaixam.

Propriedades que valem a pena saber

O perímetro do floco de Koch é infinito, mas a área é finita e igual a 23/5 vezes a área do triângulo inicial, quando a semente tem lado unitário. A dimensão fractal da curva é log(4)/log(3), aproximadamente 1.2619. A curva é contínua em todos os pontos e não diferenciável em nenhum ponto, o que significa que ela tem “bordas” em qualquer escala de aumento. Isso tem implicações práticas: se você medir o comprimento com uma régua menor, o resultado nunca converge para um número fixo no sentido clássico.

Erros comuns que eu vejo repetindo

Muita gente aplica a regra só nos segmentos “originais” e esquece de incluir os novos na mesma iteração, o que gera uma figura murch a e fora da proporção correta. Outro erro é calcular o pico do triângulo interno em vez do externo; o resultado parece similar, mas inverte a orientação e estraga preenchimentos automáticos. E tem ainda quem tente animar a iteração multiplicando coordenadas por 1/3 sem ajustar a origem, o que faz toda a figura escorregar para fora da viewport.

Quando o conjunto de copo não é a melhor escolha

Se o objetivo é apenas representar um contorno orgânico ou uma textura de borda irregular, existem geradores baseados em ruído que são muito mais rápidos e produzem resultados visualmente suficientes para a maioria dos casos. O conjunto de copo é útil quando a autossimilaridade exata importa — protótipos matemáticos, ilustrações didáticas, testes de renderização de curvas não diferenciáveis, ou peças que precisam de repetição geométrica perfeita. Fora desses cenários, o custo de geração e simplificação muitas vezes não compensa.

Download e recursos para o conjunto de copo

Não tenho um repositório único oficial sob o nome “conjunto de copo”, porque o termo não é padrão na literatura moderna em português. O que existe são implementações da curva de Koch e do floco de neve em diversas bibliotecas. Se você quiser um ponto de partida prático, procura por pacotes de geometria computacional que exponham funções de subdivisão de segmentos; a lógica acima cabe em poucas dezenas de linhas. Para quem prefere algo pronto, buscas por “Koch snowflake generator” ou “curva de Koch Python” entregam scripts que seguem exatamente a regra descrita, bastando ajustar o nível e a semente. O que eu recomendo mesmo é implementar a substituição você mesmo. A primeira vez leva uns vinte minutos; depois disso, você evita dépendncias cegas e entende onde a implementação pode falhar — especialmente nos cálculos de rotação e no fechamento da poligonal.

Resumo prático, sem dramatismo

Conjunto de copo é, na essência, o floco de neve de Koch visto por uma nomenclatura menos difundida. A construção é simples, a programação é direta, e os armadilhas são específicas: rotação do pico, multiplicação correta do número de segmentos, e otimização de exportação quando o uso é físico. Se sua necessidade é puramente visual, considere alternativas baseadas em ruído. Se precisa de autossimilaridade exata, siga a regra de subdivisão descrita aqui e valide com níveis moderados antes de escalar.