aUCBLogo Demos and Tests / fractal_tiling_tess


to fractal_tiling_tess
ct cs ht setpensize 0
updategraph
setpc rgb 0 0 0
b
ackc=rgb 1 1 1
let[[size 200]
    
[(sqrt (4-2*sqrt 2))/2]
  
[n0 10]]
pu bk :size/2
localmake "k0 1
t
ile n0  :size (list (list pos Heading))
make "k0 -1
home  pu bk :size/2
t
ile n0  :size (list (list pos Heading))
end

to tile :n :size :list1 [:k :k0][:list2 []]
if :n==0[stop]
setpc rgb 0 0 0
if empty? :list1[(tile :n-:size/sqrt 2  :list2 0-:k [] ) stop]
;(show "list1 :list1)
local [posn posn1make "posn first :list1
pu setpos first :posn seth last :posn
;comment[
make "posn1 list pos heading
  
rt :k*22.5 fd :size*:f
  
if or not pixel == rgb 1 1 1 (signum xcor) == 0-:k0
  
[setpos first :posn1 seth last :posn1
 
(tile :n :size bf :list1 :k :list2 stop]
setpos first :posn1 seth last :posn1
 
;]
 
pd 
 
Tesselation
 
[
  
setpc rgb n/n0  0
  
pd fd :size rt :k*135
  
make "list2  fput list pos heading :list2
  
fd :size/sqrt rt :k*90
  
make "list2  fput list pos heading :list2
  
fd :size/sqrt rt :k*135
 
]
pu
(tile :n :size bf :list1 :k :list2 )
;comment[
 
setpos first :posn1 seth last :posn1
 
pd 
  
fd :size rt :k*135
  
fd :size/sqrt rt :k*90
  
fd :size/sqrt rt :k*135
 
pu  
;]
end