Position actuelle: Accueil> Derniers articles> Utilisez des fonctions trigonométriques pour générer des coordonnées de polygone régulières pour ImageOpenPolygon () à utiliser

Utilisez des fonctions trigonométriques pour générer des coordonnées de polygone régulières pour ImageOpenPolygon () à utiliser

M66 2025-05-29

En PHP, si vous souhaitez dessiner un polygone ordinaire, comme un pentagone, un hexagone ou plus, nous pouvons utiliser la fonction ** trigonométrique (péché et cos) pour calculer facilement les coordonnées de chaque sommet et le dessiner à travers la fonction ImageOpenPolygon () .

Ce tutoriel expliquera en détail comment l'implémenter.

1. Préparation

Tout d'abord, assurez-vous que votre environnement PHP a la bibliothèque graphique GD activée. GD est la bibliothèque de base pour dessiner des images. Si vous utilisez un serveur PHP ordinaire, il est généralement activé par défaut.

2. Comprendre comment les fonctions trigonométriques génèrent des sommets

Une fonction trigonométrique peut convertir un angle en un point de coordonnée. Supposons que nous utilisons un certain point central (CenterX, Centery) comme référence et fixé le rayon du rayon, l'angle de chaque sommet peut être passé:

 $angle = 2 * pi() * $i / $sides;

dans:

  • $ i est l'indice du point actuel (combien de points)

  • $ Sides est le nombre de côtés, par exemple, le Pentagone est 5

  • pi () renvoie pi π, est un cercle complet (360 degrés)

Ensuite, utilisez:

 $x = $centerX + $radius * cos($angle);
$y = $centerY + $radius * sin($angle);

Calculez la position de chaque sommet.

3. CODE DE PHP complet

Voici un exemple pratique, générant un hexagone ordinaire (6 faces) et en le dessinant sur l'image:

 <?php
// Créer une toile
$image = imagecreatetruecolor(400, 400);

// Attribuer des couleurs
$background = imagecolorallocate($image, 255, 255, 255); // Fond blanc
$polygonColor = imagecolorallocate($image, 0, 0, 255);  // Polygone bleu

// Remplir l&#39;arrière-plan
imagefill($image, 0, 0, $background);

// Paramètres de polygone
$sides = 6; // Nombre de bords
$centerX = 200; // centreX
$centerY = 200; // centreY
$radius = 100; // rayon

// Générer un sommet
$points = [];
for ($i = 0; $i < $sides; $i++) {
    $angle = 2 * pi() * $i / $sides - pi() / 2; // Démarrer,So soustrait90Degré
    $x = $centerX + $radius * cos($angle);
    $y = $centerY + $radius * sin($angle);
    $points[] = $x;
    $points[] = $y;
}

// Dessiner des polygones ouverts(Ne fera pas automatiquement)
imageopenpolygon($image, $points, $sides, $polygonColor);

// Sortir des images au navigateur
header('Content-Type: image/png');
imagepng($image);

// Détruire les ressources
imagedestroy($image);
?>

4. Choses à noter

  • ImageOpenPolygon () est un polygone ouvert, les points de début et d'extrémité ne sont pas automatiquement connectés. Si vous devez fermer les graphiques, utilisez plutôt ImagePolygon () .

  • Le tableau de coordonnées est organisé dans l'ordre et le format est [x0, y0, x1, y1, x2, y2, ...] .

  • N'oubliez pas de détruire la ressource iMageDestroy ($ image) à la fin, sinon la mémoire fuira.

5. Autres conseils

Si vous souhaitez enregistrer l'image sur le serveur, par exemple sur https://m66.net/uploads/polygon.png , vous pouvez le faire:

 imagepng($image, '/path/to/uploads/polygon.png');

N'oubliez pas de vous assurer que le répertoire / path / to / / téléchargement existe et a des autorisations d'écriture à l'avance!