<?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>';
    ?>