T-square

T-square

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
lsystem TSquare extends Branches {
 
let size = 256;
set symbols axiom = F(-size) + f(size/2) + +
[ X(size/2) ] f(size) + [ X(size/2) ] f(size) +
[ X(size/2) ] f(size) + X(size/2);
set iterations = 6;
set lineCap = none;
 
interpret F(x) as DrawForward(x, -x);
interpret f as MoveForward;
interpret + as TurnLeft(90);
 
rewrite X(s)
with h = s / 2
to f(h) F(-s) + f(h) + + [ X(h) ] f(s) + [ X(h) ] f(s) + X(h);
}
 
process all with SvgRenderer;