0 ? 1 : ($a<0 ? -1 : 0)); } function newpath() { global $new; $new=true; $s.="newpath\n"; } function to($x,$y) { global $he,$nb,$links,$r0; toto($y/$links,$r0+$he*($y-$x/$nb)); } function toto($x,$y) { global $new,$s,$xs,$ys,$oldx,$oldy,$links,$K; if($new) { $u=$x*2*M_PI+M_PI/$links; $v=$y; $i=300+$v*cos($u); $j=300+$v*sin($u); $s.="$i $j moveto\n"; $new=false; } else { for($k=0; $k<$K; $k++) { $u=($oldx+($x-$oldx)*$k/$K)*2*M_PI+M_PI/$links; $v=($oldy+($y-$oldy)*$k/$K)+M_PI/$links; $i=300+$v*cos($u); $j=300+$v*sin($u); $s.="$i $j lineto\n"; } } $oldx=$x; $oldy=$y; } function recurse($i,$j) { global $x; $d=sign($j-$i); $e=abs($j-$i); if($e>2) { recurse($i,$j-$d); recurse($j-$d,$i+$d); recurse($i+$d,$j); } else { to($x,$i); to($x,$j); $x++; } }; $s.="0 setgray\n"."newpath\n"; $new=true; $x=0; to($x,0); $x++; for($i=0;$i<$links;$i++) { recurse($i,$i+$links-3); recurse($i+$links-3,$i+1); } to($x,$links); $s.="stroke\n"; $s.="showpage\n"; file_put_contents("pseudo.eps",$s);