Dans PHP, ImageOpenPolygon () est une fonction très intéressante qui vous permet d'attirer des polygones ouverts (non fermés) à travers un ensemble de points de coordonnées. Ceci est particulièrement utile lorsque vous devez dessiner des graphiques complexes, tels que des motifs d'étoile ou de flocon de neige.
Cet article expliquera des exemples comment utiliser ImageOpenPolygon () et montrera comment dessiner une simple étoile à cinq points et une structure de flocon de neige de base.
bool imageopenpolygon(
GdImage $image,
array $points,
int $num_points,
int $color
)
$ Image : la ressource d'image à dessiner.
$ Points : un tableau contenant toutes les coordonnées de sommet dans la forme [x1, y1, x2, y2, ...] .
$ num_points : le nombre de sommets.
$ couleur : la couleur de la ligne.
Remarque: ImageOpenPolygon () connecte ces points dans l'ordre, mais ne ferme pas automatiquement la figure.
Tout d'abord, nous créons une toile et dessinons une simple étoile à cinq points:
<?php
// Créer une toile
$image = imagecreatetruecolor(300, 300);
// Attribuer des couleurs
$backgroundColor = imagecolorallocate($image, 255, 255, 255); // Fond blanc
$starColor = imagecolorallocate($image, 255, 0, 0); // Étoile rouge
// Remplir l'arrière-plan
imagefill($image, 0, 0, $backgroundColor);
// Définissez le sommet de l'étoile à cinq points
$points = [
150, 20, // haut
179, 110,
270, 110,
197, 165,
220, 250,
150, 200,
80, 250,
103, 165,
30, 110,
121, 110
];
// Dessiner des pentagrammes ouverts
imageopenpolygon($image, $points, count($points) / 2, $starColor);
// Image de sortie
header('Content-Type: image/png');
imagepng($image);
// Détruiser les ressources d'image
imagedestroy($image);
?>
Après avoir enregistré comme star.php , accédez-y dans le navigateur, comme:
https://m66.net/star.php
Vous pouvez voir l'étoile tirée à cinq points.
Un simple flocon de neige peut être simulé par des lignes de rayonnement symétriques centralement:
<?php
$image = imagecreatetruecolor(300, 300);
$backgroundColor = imagecolorallocate($image, 255, 255, 255);
$snowColor = imagecolorallocate($image, 0, 0, 255);
imagefill($image, 0, 0, $backgroundColor);
// Centre de flocon de neige
$centerX = 150;
$centerY = 150;
$length = 100;
$arms = 6;
// Calculez chaque point
$points = [];
for ($i = 0; $i < $arms; $i++) {
$angle = deg2rad(360 / $arms * $i);
$x = $centerX + cos($angle) * $length;
$y = $centerY + sin($angle) * $length;
$points[] = $centerX;
$points[] = $centerY;
$points[] = $x;
$points[] = $y;
}
// Dessiner des flocons de neige
imageopenpolygon($image, $points, count($points) / 2, $snowColor);
header('Content-Type: image/png');
imagepng($image);
imagedestroy($image);
?>
Après avoir économisé comme Snowflake.php , accès dans le navigateur:
https://m66.net/snowflake.php
Vous pouvez voir une structure de flocon de neige de base radial!
ImageOpenPolygon () est un outil puissant pour dessiner des graphiques de type ouvert. Combiné avec des calculs mathématiques (tels que les fonctions trigonométriques), vous pouvez créer divers graphiques intéressants et complexes, tels que les étoiles, les flocons de neige et des modèles artistiques encore plus complexes.
Si vous souhaitez générer des graphiques complexes plus frais, vous pouvez envisager de combiner la logique de boucle et les algorithmes de coordonnées pour étendre davantage cette capacité de dessin!