<?php

function sierpinski($indice,$xp1,$yp1,$xp2,$yp2,$xp3,$yp3)
{global $niveau,$image,$col2;
imageline($image,$xp1,$yp1,$xp2,$yp2,$col2);
imageline($image,$xp1,$yp1,$xp3,$yp3,$col2);
imageline($image,$xp3,$yp3,$xp2,$yp2,$col2);
if ($indice<$niveau)
{$xp=round(($xp1+$xp2)/2);$yp=round(($yp1+$yp2)/2);
$xp4=round(($xp1+$xp3)/2);$yp4=round(($yp1+$yp3)/2);
sierpinski($indice+1,$xp1,$yp1,$xp,$yp,$xp4,$yp4);
$xp=round(($xp1+$xp2)/2);$yp=round(($yp1+$yp2)/2);
$xp4=round(($xp2+$xp3)/2);$yp4=round(($yp2+$yp3)/2);
sierpinski($indice+1,$xp2,$yp2,$xp,$yp,$xp4,$yp4);
$xp=round(($xp3+$xp2)/2);$yp=round(($yp3+$yp2)/2);
$xp4=round(($xp1+$xp3)/2);$yp4=round(($yp1+$yp3)/2);
sierpinski($indice+1,$xp3,$yp3,$xp,$yp,$xp4,$yp4);
}
}

function faire_image($niveau)
{global $x_pt,$y_pt,$num,$image,$col2;
$image=imagecreate(450,450);
$col_fond = ImageColorAllocate($image, 200,200,200);
$col1 = ImageColorAllocate($image,255,255,255);
$col2 = ImageColorAllocate($image,255,0,0);
$col3 = ImageColorAllocate($image,0,255,0);
$col4 = ImageColorAllocate($image,0,0,0);
imagefill($image,0, 0,$col_fond);
imagefilledrectangle ($image,10,10,440,440,$col1);
$indice=0;$xa=25;$ya=430;$xb=425;$yb=430;$xc=110;$yc=30;
sierpinski($indice,$xa,$ya,$xb,$yb,$xc,$yc);
ImagePng($image);
}

function faire_page()
{global $niveau,$num;
echo "<html><body><FONT face='Verdana, Arial' size=2 color='#000080'><center>\n";
echo "Tracé du triangle de Sierpinski";
echo "<BR>Choisissez le niveau de récursivité 0 - 8";
echo "<form METHOD='GET' ACTION='sierpinski.php3?action=niv&'>\n";
echo "<table border='1' width='350'>\n";
echo "<tr><td width='30%'><b>Niveau de récursivité</b></td>\n";
echo "<td width='20%'><input type='text' name='niveau' size='10' value='".$niveau."'></td>\n";
echo "<td width='10%'><INPUT TYPE=SUBMIT VALUE='OK'>\n";
echo "</tr></table></form>\n";
echo "<BR>";
echo "<img src='sierpinski.php3?action=img&niveau=".$niveau."' width='450' height='450'>";
echo "</body></html>";
}
if (isset($_GET["action"]))
	$action = $_GET["action"]; else $action = "niv";
if (isset($_GET["niveau"]))
	$niveau = $_GET["niveau"]; else $niveau = 1;
if ($action=="img") {faire_image($niveau);} else {faire_page();}

?>