Lorsque vous utilisez PHP pour traiter les images, ImageOpenPolygon () est une fonction très pratique qui peut ouvrir des chemins de polygone ouverts (c'est-à-dire que la tête et la queue ne sont pas automatiquement connectées). Cependant, de nombreux amis peuvent être perplexes lors de l'utilisation:
Afin de comprendre ce problème, nous avons effectué des tests détaillés. Jetons un coup d'œil ci-dessous.
Dans la bibliothèque GD de PHP, ImageOpenPolygon () est utilisé pour tracer des lignes de polygone ouvertes. Contrairement à ImagePolygon () , il ne connecte pas automatiquement le premier point et le dernier point.
Exemples d'utilisation de base:
<?php
// Créer une toile
$image = imagecreatetruecolor(400, 400);
// Définir la couleur de fond sur blanc
$white = imagecolorallocate($image, 255, 255, 255);
imagefill($image, 0, 0, $white);
// Définissez la couleur de la ligne sur le bleu
$blue = imagecolorallocate($image, 0, 0, 255);
// Définir un tableau de points(Dans le sens des aiguilles d'une montre)
$points = [
50, 50, // Le premier point
150, 50, // Le deuxième point
150, 150,// Le troisième point
50, 150 // Le quatrième point
];
// Dessiner des polygones ouverts
imageopenpolygon($image, $points, count($points) / 2, $blue);
// Image de sortie
header('Content-Type: image/png');
imagepng($image);
imagedestroy($image);
?>
Après avoir exécuté ce code, vous verrez un quadrilatère ouvert en forme de U, où il n'y a pas de connexion entre le point de départ et le point final .
Ensuite, nous ajustez l'ordre des points dans le sens antihoraire :
$points = [
50, 50, // Le premier point
50, 150, // Le deuxième point
150, 150,// Le troisième point
150, 50 // Le quatrième point
];
Exécutez à nouveau, la forme dessinée est toujours ouverte, sauf que les lignes se déplacent différemment .
Résumé 1 :
L'ordre des coordonnées ne fait pas fermer la figure .
L'ordre des coordonnées affecte uniquement l'ordre de dessin des lignes (c'est-à-dire que la direction des lignes changera).
Si vous voulez que la figure soit fermée, vous devez ajouter manuellement le premier point à la fin du tableau, par exemple:
$points = [
50, 50,
150, 50,
150, 150,
50, 150,
50, 50 // 再加一次Le premier point
];
De cette façon, la figure dessinée par ImageOpenPolygon () sera connectée à la fin, et elle ressemble à un polygone fermé!
Pour faciliter la visualisation des différents effets, voici une exemple d'adresse d'image:
Exemple dans le sens horaire: afficher l'exemple
Exemple dans le sens antihoraire: afficher l'exemple
Exemple de clôture manuel: Voir l'exemple
(Si vous souhaitez le générer vous-même, vous pouvez également l'essayer directement avec le code PHP ci-dessus.)
ImageOpenPolygon () n'est pas fermé par défaut, quel que soit l'ordre des coordonnées.
Si vous devez fermer, vous devez ajouter le premier point à la fin .
L'ordre des coordonnées affecte la direction du dessin de ligne , et non des comportements fermés.
J'espère que cette explication pratique peut vous aider à comprendre et à maîtriser rapidement les petits détails de ImageOpenPolygon () dans le développement réel!