Dans PHP, ImageOpenPolygon () est une fonction de dessin d'image très pratique, particulièrement adaptée à la visualisation des structures de polygones en mathématiques, telles que le dessin de figures géométriques simples, les structures fractales complexes ou la génération de graphiques dynamiques. Cet article expliquera en détail comment utiliser ImageOpenPolygon () pour dessiner des polygones et combiner des cas réels pour vous aider à comprendre le scénario d'application.
ImageOpenPolygon () est une fonction de la bibliothèque PHP GD qui s'ouvre (c'est-à-dire des lignes de polygone non fermées). Contrairement à ImagePolygon () , ImageOpenPolygon () ne connecte pas automatiquement les premier et dernier points, il est donc plus adapté pour dessiner des graphiques en polyligne non fermés.
Le format de fonction de base est le suivant:
bool imageopenpolygon(
GdImage $image,
array $points,
int $num_points,
int $color
)
$ Image : GD Image Resource.
$ Points : tableau de points (x1, y1, x2, y2, ..., xn, yn).
$ num_points : le nombre de points.
$ Color : Color Identifier (créé par ImageColorAllocate () ).
Voici un exemple simple pour dessiner une polyligne ouverte d'un pentagone:
<?php
// Créer une toile
$image = imagecreatetruecolor(400, 400);
// Attribuer des couleurs
$white = imagecolorallocate($image, 255, 255, 255);
$blue = imagecolorallocate($image, 0, 0, 255);
// Remplir l'arrière-plan
imagefill($image, 0, 0, $white);
// Définir les sommets du polygone (Pentacle,Non fermé)
$points = [
200, 50, // sommet1
350, 150, // sommet2
300, 300, // sommet3
100, 300, // sommet4
50, 150 // sommet5
];
// Dessiner des polygones ouverts
imageopenpolygon($image, $points, 5, $blue);
// Sortie vers le navigateur
header('Content-Type: image/png');
imagepng($image);
// Détruiser les ressources d'image
imagedestroy($image);
?>
Exécutez le code ci-dessus et vous verrez un pentagone composé de cinq segments bleus mais non clos.
Parfois, vous souhaitez enregistrer l'image en tant que fichier au lieu de le sortir directement, vous pouvez le faire:
<?php
$image = imagecreatetruecolor(400, 400);
$white = imagecolorallocate($image, 255, 255, 255);
$red = imagecolorallocate($image, 255, 0, 0);
imagefill($image, 0, 0, $white);
$points = [
100, 100,
300, 100,
300, 300,
100, 300
];
imageopenpolygon($image, $points, 4, $red);
// Enregistrez l'image sur le serveur local
imagepng($image, '/var/www/m66.net/uploads/openpolygon.png');
imagedestroy($image);
?>
Le code ci-dessus enregistrera le quadrilatère ouvert dessiné vers le chemin /var/www/m66.net/uploads/openpolygon.png .
Si vous voulez que la forme d'un polygone change dynamiquement en fonction des formules mathématiques, comme le dessin d'une face N ordinaire, vous pouvez le faire:
<?php
function generatePolygonPoints($centerX, $centerY, $radius, $sides) {
$points = [];
for ($i = 0; $i < $sides; $i++) {
$angle = 2 * M_PI * $i / $sides;
$x = $centerX + $radius * cos($angle);
$y = $centerY + $radius * sin($angle);
$points[] = $x;
$points[] = $y;
}
return $points;
}
$image = imagecreatetruecolor(500, 500);
$white = imagecolorallocate($image, 255, 255, 255);
$green = imagecolorallocate($image, 0, 128, 0);
imagefill($image, 0, 0, $white);
// Génération dynamique 7 Ligne de touche(七Ligne de touche)
$points = generatePolygonPoints(250, 250, 200, 7);
imageopenpolygon($image, $points, 7, $green);
// Image de sortie
header('Content-Type: image/png');
imagepng($image);
imagedestroy($image);
?>
De cette façon, vous pouvez dessiner des polygones de n'importe quel nombre de côtés en modifiant simplement la valeur des côtés $ , ce qui est très adapté à l'affichage dynamique des graphiques mathématiques!
ImageOpenPolygon () nécessite la prise en charge de l'extension GD pour garantir que PHP a installé et activé la bibliothèque GD.
La longueur du réseau de points doit être de 2 * points , sinon une erreur se produira.
Si vous avez besoin de fermer les polygones, utilisez ImagePolygon () au lieu de ImageOpenPolygon () .
Lors de l'enregistrement du fichier, assurez-vous que le répertoire /var/www/m66.net/uploads/ sur le serveur existe déjà et a des autorisations d'écriture.
ImageOpenPolygon () nous permet de visualiser facilement les graphiques mathématiques en PHP. Il convient non seulement au dessin graphique de base, mais peut également être combiné avec des formules mathématiques pour obtenir de riches effets d'affichage dynamique. La maîtrise peut faire passer vos capacités de traitement d'image et de visualisation des données au niveau supérieur!