черепаха должна в конечном итоге туда, где он начал. Давайте разберем код по строкам:
forward(s);
Это рисует вертикальный ствол дерева.
left(45);
Мы поворачиваем влево, чтобы мы указывали на верхний левый угол.
tree(s/2);
Мы рекурсивный вызов tree
с половиной длиной основания, в результате чего новое дерево ответвления от нашего ствола в направлении, которое мы указали (45 градусов влево). Обратите внимание, что дерево будет продолжать рекурсивно разветвляться до тех пор, пока базовая длина не станет меньше 8 единиц (пикселей?). Затем он возвращается к месту, из которого он был разбит, базе ветки.
right(90);
После того как мы закончим рисовать левой ветви, мы переходим к правой 90 градусов, так что мы теперь указывает на верхний правый угол.
tree(s/2);
Как и раньше, мы отделяем и начинаем рисовать дерево в этом направлении с половиной базовой длины.
left(45);
Мы поворачиваем налево на 45 градусов, чтобы переориентировать себя так, чтобы мы указывали прямо вверх.
back(s);
Черепаха возвращается к основанию дерева.
В целом код разветвляется слева под углом 45 градусов с половиной длины основания, пока ветви не станут слишком короткими; после этого он затем эффективно спирали обратно вовнутрь, рисуя оставшиеся ветви (слева, затем справа).