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.