Arcs et polygones
Les arcs: fonctions imageacr() et imagefilledarc()
La fonction
imagearc($img , $cx , $cy , $l , $h , $ang_debut , $ang_fin , $couleur) permet de dessiner un arc creux. Les paramètres sont les mêmes que pour les ellipses car un arc n'est rien d'autre qu'une partie d'une ellipse. $cx et $cy désignent le centre de l'ellipse qui sert de guide. $l et $h indiquent la largeur et la hauteur de l'ellipse et $couleur la couleur de la bordure de l'arc. Cependant, il faut ajouter deux autres paramètres qui sont $ang_debut et $ang_fin qui désignent respectivement l'angle de début et de fin de l'arc. Les deux angles sont exprimés en degré.
Notez que l'ellipse est tracé dans le sens horaire (dans le sens des aiguilles d'une montre) et l'angle 0 correspond à la position trois heures.
La fonction
imagefilledarc() permet de dessiner un arc plein. Elle a exactement les mêmes paramètres que la fonction
imagearc() sauf qu'il faut ajouter un dernier (après $couleur) qui désigne le style de l'arc et qui peut prendre une des valeurs suivantes:
- IMG_ARC_PIE: permet de relier les deux extrémités de l'arc par une ligne qui traverse le centre de l'ellipse guide. L'espace entre l'arc et la ligne est rempli.
- IMG_ARC_EDGED: donne le même résultat que IMG_ARC_PIE.
- IMG_ARC_CHORD: permet de relier les deux extrémités de l'arc en passant par le centre de l'ellipse guide. L'espace entre ce centre et la ligne est rempli.
- IMG_ARC_NOFILL: revient à déclarer la fonction imagearc(). Elle n'applique aucun remplissage.
En général c'est IMG_ARC_PIE qui est utilisé pour réussir des diagrammes camembert (ou en secteurs).
Exemple:
<?php
header("content-type:image/png");
$x=400;
$y=300;
$img = imagecreatetruecolor($x,$y);
$gris = imagecolorallocate($img,220,220,220);
$bleu = imagecolorallocate($img,0,0,200);
imagefill($img,0,0,$gris);
imagearc($img,$x/4,$y/2,$x/2-25,$x/2-25,0,270,$bleu);
imagefilledarc($img,3*$x/4,$y/2,$x/2-25,$x/2-25,0,270,$bleu,IMG_ARC_PIE);
imagepng($img);
?>
Ce qui donne:
Les polygones: fonctions imagepolygon() et imagefilledpolygon()
La fonction
imagepolygon($img , $tab_points , $nbr_points , $couleur) permet de dessiner les polygones (y compris les triangles). Le paramètres $tab_points est une variable de type tableau qui renferme les coordonnées des points du polygone. Le paramètre $nbr_points désigne le nombre de points de celui-ci (il doit être égal à la moitié du nombre d'éléments du tableau des coordonnées).
La fonction
imagefilledpolygon() permet de dessiner un polygone plein. Elle a les mêmes paramètres que la fonction
imagepolygon().
Exemple:
<?php
header("content-type:image/png");
$x=400;
$y=300;
$img = imagecreatetruecolor($x,$y);
$gris = imagecolorallocate($img,220,220,220);
$bleu = imagecolorallocate($img,0,0,200);
imagefill($img,0,0,$gris);
imagepolygon($img,array(25,25,$x/2-25,25,$x/4,$y-25),3,$bleu);
imagefilledpolygon($img,array($x/2+25,25,$x-25,25,3*$x/4,$y-25),3,$bleu);
imagepng($img);
?>
Ce qui donne: