Floco de neve

Vamos agora desenhar flocos de neve a usar 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. O seu trabalho é apenas escrever o código do método snowSide de forma que 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 a ser removido. No nível 2, o processo é repetido, com cada um dos segmentos dividido em três partes e a parte do meio a ser 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 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.

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.