La fonction polygones pour dessiner des formes géométriques

PHP cours tutorial

La fonction polygones pour dessiner des formes géométriques

  Un polygone est une forme géométrique de 3 sommets ou plus donc des triangles, des carrées, des rectangles, des losanges, des étoiles etc.…

Les polygones vides

La fonction qui permet de dessiner des polygones vide est :
  imagepolygon($image, $tableau_points, $nombre_points, $couleur) Avec :

  • $image : l’image source, retourné par une des fonctions de création d'images, comme imagecreatetruecolor()
  • $tableau_points : un array (tableau) qui indique les coordonnées des point sommets du polygone
  • $nombre_points : indique le nombre de sommets du polygone
  • $couleur : la couleur du tracé créé par la fonction imagecolorallocate().

Dessiner un triangle avec PHP GD

Un triangle est un polygone à 3 sommets.
Donc pour dessiner un triangle nous avons besoin de :

un tableau contenant les coordonnées des trois sommets que nous stockons dans la variable $points.

$points = array(
            40,  50,  // Point 1 (x, y)
            20,  240, // Point 2 (x, y)
            160,  230,  // Point 3 (x, y)
            );
$image : Une ressource d'image.
array $points : Un tableau qui contient les coordonnées x et y du sommet des polygones.
int $num_points : Le nombre total de sommets, et doit être d'au moins 3.
int $color : Un identifiant de couleur.
Dans l’exemple suivant on va dessiner deux triangles :

CODE :

Sélectionner le code

  <?php
  // Définition du tablau de points pour le polygone
  $points = array(
              60,  50,  // Point 1 (x, y)
              20,  240, // Point 2 (x, y)
              160,  230,  // Point 3 (x, y)
              );
  $pointsd=array(
              60,  50,  // Point 1 (x, y)
              180,  160, // Point 2 (x, y)
              160,  230,  // Point 3 (x, y)
              );
   
  // Création d'une image
  $image = @imagecreate(250, 250);
   
  // Alloue quelques couleurs
  $blanc   = imagecolorallocate($image, 255, 255, 255);
  $bleu = imagecolorallocate($image, 0, 0, 255);
  $bleud = imagecolorallocate($image, 0, 0, 205);
  // Remplit l'arrière-plan
  imagefilledrectangle($image, 0, 0, 249, 249,
  $blanc);
   
  // Dessine le polygone
  imagepolygon($image, $points, 3, $bleu);
  imagepolygon($image, $pointsd, 3, $bleud);
  // Affichage de l'image
  header('Content-type: image/png');
  imagepng($image);
  imagedestroy($image);
  ?>
           
 

Pour dessiner un triangle plein il suffit de remplacer la ligne:
imagepolygon($image, $points, 3, $bleu);
par la suivante :
imagefilledpolygon($image, $points, 3, $bleu);

  et nous aurons le code suivant :
 

Sélectionner le code

  <?php
  // Définition du tablau de points pour le polygone
  $points = array(
              60,  50,  // Point 1 (x, y)
              20,  240, // Point 2 (x, y)
              160,  230,  // Point 3 (x, y)
              );
  $pointsd=array(
              60,  50,  // Point 1 (x, y)
              180,  160, // Point 2 (x, y)
              160,  230,  // Point 3 (x, y)
              );
   
  // Création d'une image
  $image = @imagecreate(250, 250);
   
  // Alloue quelques couleurs
  $blanc   = imagecolorallocate($image, 255, 255, 255);
  $bleu = imagecolorallocate($image, 0, 0, 255);
  $bleud = imagecolorallocate($image, 0, 190, 100);
  // Remplit l'arrière-plan
  imagefilledrectangle($image, 0, 0, 249, 249,
  $blanc);
   
  // Dessine le polygone
  imagefilledpolygon($image, $points, 3,
  $bleu);
  imagefilledpolygon($image, $pointsd, 3,
  $bleud);
  // Affichage de l'image
  header('Content-type: image/png');
  imagepng($image);
  imagedestroy($image);
  ?>
           
 

Dessiner un polygone avec PHP GD

  Le code suivant dessine un polygone bleu sur un fond noir

Sélectionner le code

	<?php
	// Définition du tablau de points pour le polygone
	$values = array(
	            40,  50,  // Point 1 (x, y)
	            20,  240, // Point 2 (x, y)
	            60,  60,  // Point 3 (x, y)
	            240, 20,  // Point 4 (x, y)
	            50,  40,  // Point 5 (x, y)
	            20,  20    // Point 6 (x, y)
	            );
	// Création d'une image
	$image = imagecreatetruecolor(250, 250);
	// Alloue quelques couleurs
	$bg   = imagecolorallocate($image, 0, 0, 0);
	$blue = imagecolorallocate($image, 0, 0, 255);
	// Remplit l'arrière-plan
	imagefilledrectangle($image, 0, 0, 249, 249, $bg);
	// Dessine le polygone
	imagefilledpolygon($image, $values,6, $blue);
	// Affichage de l'image
	header('Content-type: image/png');
	imagepng($image);
	imagedestroy($image);
	?>
      
 

  • dessiner un polygone à 12 sommets avec PHP GD

Le code suivant dessine un polygone à 12 sommets couleur rouge sur un fond bleu

Sélectionner le code

  <?php
  // Définition du tablau de points pour le polygone
  $values = array(
              25,  75,  // Point 11 (x, y)
              50, 125,  // Point 10 (x, y)
              25,  175, // Point 9 (x, y)
              75,  175, // Point 8 (x, y)
              125,  200,  // Point 7 (x, y)
              175,  175,    // Point 6 (x, y)
              225,  175,  // Point 5 (x, y)
              200,  125,  // Point 4 (x, y)
              225,  75,  // Point 3 (x, y)
              175, 75, // Point 2 (x, y)
              125,  50,  // Point 1 (x, y)
              75,  75    // Point 12 (x, y)
                          );
   
  // Création d'une image
  $image = imagecreatetruecolor(250, 250);
   
  // Alloue quelques couleurs
  $bg   = imagecolorallocate($image, 0, 0, 255);
  $blue = imagecolorallocate($image, 255, 0, 0);
   
  // Remplit l'arrière-plan
  imagefilledrectangle($image, 0, 0, 249, 249, $bg);
   
  // Dessine le polygone
  imagefilledpolygon($image, $values,12, $blue);
   
  // Affichage de l'image
  header('Content-type: image/png');
  imagepng($image);
  imagedestroy($image);
  ?>
           
 

Par carabde 20 Aout 2014