Floco de neve

Vamos agora desenhar flocos de neve usando o Koch fractal. Um fractal é um padrão geométrico repetido em cada escala.

A forma geral é um triângulo, com cada lado dado por várias chamadas recursivas. Seu trabalho é apenas escrever o código do método snowSide de forma que ele desenhe um lado do triângulo. Para facilitar, cada um dos lados é representado numa cor específica. Simplesmente desenhe as coisas vermelhas (sem mudar a cor da sua caneta), e as outras cores serão desenhadas automaticamente.

Observe o desenho em cada um dos mundos objetivo para entender a lógica do padrão, e então reproduza ele. No nível 0, a curva de Koch é apenas uma linha reta. No nível 1, a curva é dividida em três terços, e a parte média é substituída pelos dois lados de um triângulo equilátero do mesmo comprimento do segmento sendo removido. No nível 2, o processo é repetido, com cada um dos segmentos dividido em três partes e a parte do meio sendo substituída pelos dois lados de um triângulo equilátero.

O pseudo-código do caso geral é o seguinte:

  Desenhe recursivamente um segmento menor
  Gire 60 graus para a esquerda
  Desenhe recursivamente um segmento menor
  Gire 120 graus para a direita
  Desenhe recursivamente um segmento menor
  Gire 60 graus para a esquerda
  Desenhe recursivamente um segmento menor

Como você pode ver, a função forward() não é chamada no caso recursivo, apenas no caso base quando não existe chamada recursiva.

Aqui estão os resultados dos primeiro níveis da recursão.

Você deve escrever o método snowSide(), que é recursivo mas não chame snowFlake de dentro de snowSide, ou vão acontecer resultados estranhos e inesperados.