Golden Triangle Fractal
Thanks to Christian Mercat : News Feed
See Tilings Encyclopedia : Golden Triangle Tiling
Setup
Fib= IterationList(a+b, a, b, {1,2}, 9)
S = (sqrt(5)-1)/2
C = sqrt(S)
M = {{{S,-C,1}, {-C,-S,C}, {0,0,1}}, {{-S,C,1/C}, {C,S,0}, {0,0,1}}}
L1 = {Polygon({(0,0), (S,S*C), (1,0)}), Polygon({(S,S*C), (1,0), (1,C)})}
L2 = Dilate(Join( {L1 , Zip(ApplyMatrix(M(1),p), p, First(L1 , Fib( 1 )))}),C)
L3 = Dilate(Join( {L2 , Zip(ApplyMatrix(M(2),p), p, First(L2 , Fib( 2 )))}),C)
L4 = Dilate(Join( {L3 , Zip(ApplyMatrix(M(1),p), p, First(L3 , Fib( 3 )))}),C)
L5 = Dilate(Join( {L4 , Zip(ApplyMatrix(M(2),p), p, First(L4 , Fib( 4 )))}),C)
L6 = Dilate(Join( {L5 , Zip(ApplyMatrix(M(1),p), p, First(L5 , Fib( 5 )))}),C)
L7 = Dilate(Join( {L6 , Zip(ApplyMatrix(M(2),p), p, First(L6 , Fib( 6 )))}),C)
L8 = Dilate(Join( {L7 , Zip(ApplyMatrix(M(1),p), p, First(L7 , Fib( 7 )))}),C)
L9 = Dilate(Join( {L8 , Zip(ApplyMatrix(M(2),p), p, First(L8 , Fib( 8 )))}),C)
L10= Dilate(Join({L9 , Zip(ApplyMatrix(M(1),p), p, First(L9 , Fib( 9 )))}),C)
L11= Dilate(Join({L10,Zip(ApplyMatrix(M(2),p), p, First(L10,Fib(10)))}),C)
L12= Join({L11, Rotate(L11, 180°, (1,C)/2)})
L13= RemoveUndefined(Zip(If(p>0.0015,p), p,L12))
L14= RemoveUndefined(Zip(If(p<0.0015,p), p,L12))
#-----------------------------------------------
# Settings
#-----------------------------------------------
CenterView((Corner(3)-Corner(1)+(C-y(Corner(3)-Corner(1)))(1,1))/2)
ZoomOut( 1.1 C / y(Corner(3)-Corner(1)) , (C/2,C/2) )
SetBackgroundColor("Black")
ShowAxes(False)
ShowGrid(False)
Execute(Zip("SetLayer(L"+k+",0)", k,1..14))
Execute(Zip("SetConditionToShowObject(L"+k+",false)", k,1..11))
Execute(Zip("SetLineThickness(L"+k+",3)", k,12..14))
SetLayer(L12, 1)
SetColor(L12, "Black")
Execute(Zip("SetFilling(L"+k+",1)", k,13..14))
SetColor(L13, "Cyan")
SetColor(L14, "Red")