<? ImagePolygon ($im, $points, $num_points, $col);?>
$im : quelles valeurs possibles?
$points : un entier?, un réel, une paire d'entiers ou de réels (style coordonnées du/des points? Un caractère (Le nom du point)?
$num_points : ???
$col : ???
A priori, j'aurais stocké en BDD:
nom_de_fig : text (carre_1, cercle_392...)
type de figure (polygone, ovale (comprenant le cercle puisque le cercle est une ovale dont les deux foyers sont confondus)
et on voit à l'évidence que les informations à stocker sont différentes suivant le type de figure:
segment de droite : coordonnées des deux extrémités....
triangles :
quadrilatères : coordonnées des quatre sommets
cercles et ovales : coordonnées des deux foyers, et longueur du rayon
polygones réguliers( non croisés) : je crois qu'il suffit des coordonnées du centre, du rayon, et du nombre de sommets,
chaque coordonnée comportant deux valeurs exemple
x=12,35 y =131,9 on peut les loger dans un tableau PHP:
t[0]['x'] = 12,35; // coordonnées du foyer 1, si ovale. du centre si cercle. du premier sommet si quadrilatère
t[0]['y'] = 131.9;
t[1]['x'] // coordonnées du foyer 2, si ovale. du centre si cercle. du deuxième sommet si quadrilatère
t[1]['y']
t[2]['x'] // dès lors ce sont les coordonnées des sommets successifs mises à 0 si inutiles
Ce tableau, pour le stocker en BDD, on va lui appliquer deux fois la fonction implode, une fois sur chaque ligne, donnant un tableau de paires, une fois sur ce deuxième tableau
<?PHP
$t = array(); // le tableau initial de points
for ($i=0; $i<6; $i++)
{
$t[$i]['x'] = "X".$i;
$t[$i]['y'] = "Y".$i;
}
print_r($t);
$t_champ = array(); // le tableau intermédiaire
foreach($t as $t_ligne)
{
/*implosion avec un séparateur multiple parce que, partant d'un tableau à 2
dimensions, on a besoin de deux séparateurs distincts et que je trouve commode
de les hiérarchiser par le nombre de points /::/ à esploser en second*/
$ligne = implode("/::/", $t_ligne);
$t_champ[]= $ligne;
}
$champ = implode ("/:/", $t_champ); // la chaine à stocker en BDD
print"<br>$champ";
?>
A l'utilisation, on explode ("/:/"..) d'abord, avant de s'en servir, puis chaque ligne du tableau résultat par explode("/::/..) au moment de s('en servir