<?php

function vonkoch($indice,$xp1,$yp1,$xp2,$yp2)
{global $niveau,$image,$col2;
if ($indice==$niveau) {imageline($image,$xp1,$yp1,$xp2,$yp2,$col2);}
else
{$xp=round($xp1+($xp2-$xp1)/3);$yp=round($yp1+($yp2-$yp1)/3);vonkoch($indice+1,$xp1,$yp1,$xp,$yp);
$xp=round($xp1+($xp2-$xp1)/3);$yp=round($yp1+($yp2-$yp1)/3);
$xp3=round($xp+($xp2-$xp1)/6+1.732*($yp2-$yp1)/6);$yp3=round($yp-1.732*($xp2-$xp1)/6+($yp2-$yp1)/6);
vonkoch($indice+1,$xp,$yp,$xp3,$yp3);
$xp=round($xp1+2*($xp2-$xp1)/3);$yp=round($yp1+2*($yp2-$yp1)/3);vonkoch($indice+1,$xp3,$yp3,$xp,$yp);
vonkoch($indice+1,$xp,$yp,$xp2,$yp2);}
}

function faire_page()
{global $niveau;
echo "<html><body><FONT face='Verdana, Arial' size=2 color='#000080'><center>\n";
echo "Tracé de la courbe de Von Koch";
echo "<BR>Choisissez le niveau de récursivité 0 - 6";
echo "<form METHOD='GET' ACTION='vonkoch.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><img src='vonkoch.php3?action=img&niveau=".$niveau."' width='450' height='250'>";
echo "</body></html>";

}

function faire_image($niveau)
{global $x_pt,$y_pt,$image,$col2;
$image=imagecreate(450,250);
$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,240,$col1);
$indice=0;$xd=25;$yd=230;$xa=425;$ya=230;
vonkoch($indice,$xd,$yd,$xa,$ya);
ImagePng($image);
}

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();}

?>