<?php
$map = array(-4 => array(-4 => "franchissable", -3 => "franchissable", -2 => "franchissable", -1 => "franchissable", 0 => "franchissable"),
-3 => array(-4 => "franchissable", -3 => "franchissable", -2 => "franchissable", -1 => "franchissable", 0 => "franchissable", 1 => "franchissable"),
-2 => array(-4 => "franchissable", -3 => "franchissable", -2 => "franchissable", -1 => "franchissable", 0 => "franchissable", 1 => "franchissable", 2 => "franchissable"),
-1 => array(-4 => "franchissable", -3 => "franchissable", -2 => "franchissable", -1 => "franchissable", 0 => "franchissable", 1 => "franchissable", 2 => "franchissable", 3 => "franchissable"),
0 => array(-4 => "franchissable", -3 => "franchissable", -2 => "franchissable", -1 => "franchissable", 0 => "franchissable", 1 => "franchissable", 2 => "franchissable", 3 => "franchissable", 4 => "franchissable"),
1 => array(-3 => "franchissable", -2 => "franchissable", -1 => "franchissable", 0 => "franchissable", 1 => "franchissable", 2 => "franchissable", 3 => "franchissable", 4 => "franchissable"),
2 => array(-2 => "franchissable", -1 => "franchissable", 0 => "franchissable", 1 => "franchissable", 2 => "franchissable", 3 => "franchissable", 4 => "franchissable"),
3 => array(-1 => "franchissable", 0 => "franchissable", 1 => "franchissable", 2 => "franchissable", 3 => "franchissable", 4 => "franchissable"),
4 => array(0 => "franchissable", 1 => "franchissable", 2 => "franchissable", 3 => "franchissable", 4 => "franchissable"));
$firstX = key($map);
$lastX = $firstX + count($map)-1;
$plageX = $lastX - $firstX;
$milieuX = $firstX + abs(ceil($plageX/2));
$firstY = key($map[$milieuX]);
$lastY = $firstX + count($map[$milieuX])-1;
$plageY = $lastY - $firstY;
$milieuY = $firstY + abs(ceil($plageY/2));
header('Content-type: image/svg+xml');
echo '<?xml version="1.0" standalone="no"?>'."\r\n";
echo '<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">'."\r\n";
echo '<svg width="500" height="500" version="1.1" xmlns="http://www.w3.org/2000/svg">'."\r\n";
echo '<title>Map hexagonal</title>'."\r\n";
echo '<g>'."\r\n";
// $distance = (abs($dx) + abs($dy) + abs($dx - $dy))/2;
$widthTile = 20;
$heightTile = sin(deg2rad(60))*$widthTile;
$decalageX = $plageX*$widthTile/2;
$decalageY = $plageY*$heightTile/2;
for($x = $firstX; $x < count($map); $x++) {
for($y = $firstY; $y < count($map[$milieuX]); $y++) {
if(isset($map[$x][$y])) {
$posY = ($milieuY+$y)*$heightTile-($milieuX+$x)*$heightTile/2;
$posX = ($milieuX+$x)*$widthTile/4*3;
$x1 = $posX+$widthTile/4+$decalageX;
$y1 = $posY+$decalageY;
$x2 = $posX+$widthTile/4*3+$decalageX;
$y2 = $posY+$decalageY;
$x3 = $posX+$widthTile+$decalageX;
$y3 = $posY+$heightTile/2+$decalageY;
$x4 = $posX+$widthTile/4*3+$decalageX;
$y4 = $posY+$heightTile+$decalageY;
$x5 = $posX+$widthTile/4+$decalageX;
$y5 = $posY+$heightTile+$decalageY;
$x6 = $posX+$decalageX;
$y6 = $posY+$heightTile/2+$decalageY;
echo '<polyline style="fill:darkgreen; stroke:black; stroke-width:1px;" points="'.$x1.','.$y1.' '.$x2.','.$y2.' '.$x3.','.$y3.' '.$x4.','.$y4.' '.$x5.','.$y5.' '.$x6.','.$y6.' '.$x1.','.$y1.'" />'."\r\n";
}
}
}
echo '</g>'."\r\n";
echo '</svg>';
?>