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.