Sample5

to triangle :size
    repeat 3 [forward :size right 120]
end
         
to sample5 :size
    repeat 6 [
      triangle :size
      forward / :size 2
      right 60
      triangle / :size 2
    ]
end


 sample5 100 として実行しました。
特に説明は、いらないでしょう。
三角形を描いたら、その中に半分の大きさで三角形を描いているだけですね。
でも、むだな動きをしていますね。同じ所を何度も、なぞっているので線が少々汚くなってしまいました。



Sample6

to triangle_fill :size :fcolor
    local "current.color
    make "current.color pencolor
         
    repeat 3 [forward :size right 120]
    right 30
    penup
    forward / :size 2
    setpc :fcolor
    pendown
    fill
    penup
    back / :size 2
    left 30
    setpc :current.color
    pendown
end
         
to sample6_sub :size
    repeat 6 [
      triangle :size
      forward / :size 2
      right 60
      triangle_fill / :size 2 pick butmember "WHITE butmember "BLACK colors
    ]
end
         
to sample6 :size [:fill.flag "true] 1
    make "size (* / :size 7 2)
    local "current.xy
    make "current.xy getxy
    local "job
         
    penup
    right 60
    forward / :size 2
    left 60
    pendown
    if fill.flag [
      make "job list "sample6_sub :size
    ] [
      make "job list "sample5 :size
    ]
    repeat 6 [
      run :job
      left 60
      forward / :size 2
    ]
    penup
    setxy :current.xy
    pendown
end


 sample6 200 として実行しました。
sample5を懲りずに繰り返してみました。
手続きの第1引数を、省略すると小さい三角形を塗りつぶします。
※引数の番号は、0から始まります。
実際の動作は、変数 job に指示リストを簡単に、組み立てているだけです。

塗りつぶさない場合は、(sample6 200 "false) とタイプして下さい。
塗りつぶす色は、colors の中からBLACKWHITEを、butmemberで仲間はずれにして、その中から pick で無作為に1色だけ選びます。
三角形内を、塗りつぶす方法は多少めんどうくさいけど、手続きtriangle_fillしか思いつきませんでした。


Sample7

to sample7 :size
    make "size2 (* / :size 7 2)
    local "current.xy
    make "current.xy getxy
    local "angle
    make "angle (+ heading 60)
    local "reduce
    make "reduce (* :size 0.25)
         
    (sample6 :size false)
    penup
    repeat 6 [
      setheading :angle
      forward :size2
      pendown
      (sample6 :reduce true)
      penup
      setxy :current.xy
      make "angle (+ :angle 60) 
    ]
    (sample6 :reduce true)
end



 sample7 300で実行しています。
繰り返しは、力なり。:-D
今度は、sample6 を繰り返しています。

 まず先に、塗りつぶし無しでsample6を描いています。
その中に、塗りつぶし有りのsample6を、描きました。
同じ図形を、繰り返して描く事で、面白い図形になったりします。
再帰手続きを使えば、もっと面白い図形が描けますが、これはしばらく後のお楽しみです。