Consumes around 4 gigs of RAM in MS Edge. In Chrome it'll render for ages.
class L
{
public $start = "<span class='lvl'>L";
public $leftEndStart = '<span class="l">';
public $rightEndStart = '<span class="r">';
public $rightTop = '<span class="t">';
public $end = '</span>';
public $threshold = 9;
function addLevel($depth)
{
if ($depth <= 0) {
return;
}
$depth--;
$reducedStackSize = $depth;
if ($reducedStackSize > $this->threshold) {
$reducedStackSize = $this->threshold;
}
$output = $this->start;
$output .= $this->leftEndStart . $this->addLevel($depth) . $this->end; //Spine
$output .= $this->rightEndStart . $this->addLevel($reducedStackSize) . $this->end;
$output .= $this->rightTop . $this->addLevel($reducedStackSize) . $this->end;
$output .= $this->end;
return $output;
}
}
$l = new L();
echo $l->addLevel(34);
body {
font-family: Lato;
font-size: 340px;
margin: 1000px;
/*text-rendering: optimizeSpeed;
-webkit-font-smoothing: none;*/
}
span.lvl {
position: relative;
}
span {
position: absolute;
width: 0px;
height: 0px;
display: inline-block;
font-style: normal;
}
.l {
left: 38px;
top: 159px;
transform: rotate(26deg) scale(0.9);
}
.r {
left: 68px;
top: 221px;
transform: rotate(-62deg) scale(0.5);
}
.t {
left: 122px;
top: 233px;
transform: rotate(-180deg) scale(0.2);
}