Тексты программ

Эти программы, за исключением рекурсивного дерева, родились в процессе переписки и дискуссий с замечательным и тонким знатоком Лого, преподавателем колледжа из Израиля Иегудой Кацем.
Дерево - широко известный пример рекурсивной графики. Вариант его, рассмотренный здесь, предложен Брайеном Харви в его книге Computer Science Logo Style.




to tree.main  
; рекурсивное дерево из книги Брайена Харви.
cs ht
tree 50
end

to tree :size
if :size<5 [forward :size back :size stop]
forward :size/3
left 30 tree :size*2/3 right 30
forward :size/6
right 25 tree :size/2 left 25
forward :size/3
right 25 tree :size/2 left 25
forward :size/6
back :size
end


to tiling.main ;Эта прекрасная программа ;разработана Иегудой Кацем. ;Меняя параметры, можно получить ;совершенно различные узоры localmake "size 12 localmake "level 5 pr[Input number of points and head_angle] pr[Try points=3,4,6 and for each, angle=15,30,45,60,90,120] tiling.do rw rw :level end to tiling.do :points :head_ang :level repeat :points[ if :level<1[stop] fd :size rt 180 tiling.do :points :head_ang :level-1 rt 180 lt 180-(360/:points+:head_ang) fd :size rt 180-:head_ang] end


to rec.star.main ; рекурсивные звезды cs ht print [Input four numbers -] print [sides number, side size, angle, level] do rw rw rw rw end to rec.star.do :sides :size :ang :level if :level<1 [stop] repeat :sides[ rec.star.shape] end to rec.star.shape rt :ang/2 fd :size rt 180 fd :size lt :ang/2 rec.star.do :sides .5*:size :ang :level-1 rt :ang/2 rt 180-:ang fd :size lt 180-:ang-360/:sides fd :size rt 180 lt :ang/2 end


to octogon.main ; Кружево из восьмиугольников. cs ht octogon.do 50 4 end to octogon.do :size :level if :level<1 [stop] repeat 8 [octogon.shape :size :level rt 180 fd :size/3 rt 360/8] end to octogon.shape :size :level fd 2*:size/3 rt 180 octogon.do :size/3 :level-1 end

Вернемся назад?