Position actuelle: Accueil> Derniers articles> Comment utiliser ImageOpenPolygon () pour simuler le dessin de l'image radar / image d'araignée

Comment utiliser ImageOpenPolygon () pour simuler le dessin de l'image radar / image d'araignée

M66 2025-05-31

Dans la visualisation des données, un graphique radar (ou graphique d'araignée) est un graphique très utile qui peut nous aider à afficher visuellement des données multidimensionnelles. Pour les développeurs PHP, la fonction ImageOpenPolygon () peut être utilisée pour simuler des diagrammes radar de dessin. Cette fonction fait partie de la bibliothèque GD, qui nous permet de dessiner des polygones en images. En définissant raisonnablement les sommets, l'effet de la carte radar peut être réalisé. Cet article présentera comment dessiner un diagramme radar en utilisant la fonction ImageOpenPolygon () de PHP.

1. Le concept de diagramme radar

Le graphique radar, également connu sous le nom de graphique d'araignée, est un graphique qui affiche des données multidimensionnelles. Chaque point de données représente une dimension du graphique, et les valeurs de données sont connectées via des sommets pour former un polygone fermé. Il convient pour afficher des relations entre plusieurs variables, en particulier lorsque vous devez comparer plusieurs objets ou dimensions.

2. Utilisez ImageOpenPolygon () pour dessiner le diagramme radar

La fonction ImageOpenPolygon () est une fonction dans la bibliothèque PHP GD et est généralement utilisée pour dessiner des polygones en images. Lors du dessin d'un graphique radar, nous pouvons utiliser cette fonction pour dessiner un polygone et s'adapter à différentes dimensions de données en ajustant les sommets du polygone.

Syntaxe de base:

 imageopenpolygon($image, $points, $num_points, $color);
  • $ Image : Ressource d'image cible.

  • $ Points : un tableau contenant toutes les coordonnées de sommet.

  • $ num_points : le nombre de sommets.

  • $ couleur : la couleur du polygone.

Étape 1: Initialisez l'image

Tout d'abord, nous devons créer une ressource d'image et définir une couleur d'arrière-plan pour l'image.

 <?php
// Créer un 500x500 Image blanche
$image = imagecreatetruecolor(500, 500);

// Définir la couleur de fond sur blanc
$bgColor = imagecolorallocate($image, 255, 255, 255);  // RGB (255, 255, 255) Représente le blanc
imagefill($image, 0, 0, $bgColor);
?>

Étape 2: Réglez le centre et le rayon de la carte radar

Le point central du graphique radar est le centre du graphique, et les points de données de chaque dimension déterminent leur distance du centre en fonction de leurs valeurs. Supposons que nous divions le graphique en 6 dimensions et fixons le rayon à 200.

 <?php
// Coordonnées du centre de la carte radar
$centerX = 250;
$centerY = 250;
$radius = 200;
?>

Étape 3: Calculez les points de données de chaque dimension

Nous devons calculer les coordonnées des points de données pour chaque dimension. Ces coordonnées déterminent les sommets du polygone.

 <?php
// Supposer qu&#39;il y a 6 Données de chaque dimension
$data = [80, 70, 90, 60, 85, 75];  // 每Données de chaque dimension值 (portée:0 - 100)

// 将每Données de chaque dimension映射到半径
$points = [];
$numPoints = count($data);

for ($i = 0; $i < $numPoints; $i++) {
    // Calculer l&#39;angle
    $angle = (2 * M_PI * $i) / $numPoints;
    
    // Calculez les coordonnées de chaque point de données
    $x = $centerX + cos($angle) * ($radius * $data[$i] / 100);
    $y = $centerY + sin($angle) * ($radius * $data[$i] / 100);
    
    // Enregistrer les coordonnées du sommet
    $points[] = $x;
    $points[] = $y;
}
?>

Étape 4: Dessinez le diagramme radar

Ensuite, nous utilisons la fonction ImageOpenPolygon () pour dessiner les polygones et rejoindre ces sommets.

 <?php
// Réglez la couleur du polygone sur le bleu
$polygonColor = imagecolorallocate($image, 0, 0, 255);

// Dessin de polygones de diagrammes radar
imageopenpolygon($image, $points, $numPoints, $polygonColor);
?>

Étape 5: Sortie de l'image

Enfin, nous publions l'image générée.

 <?php
// L&#39;image de sortie est PNG Format
header('Content-Type: image/png');
imagepng($image);

// Détruiser les ressources d&#39;image
imagedestroy($image);
?>

3. Code complet

Combinez les extraits de code ci-dessus et le code final est le suivant:

 <?php
// Créer des ressources d&#39;image
$image = imagecreatetruecolor(500, 500);

// Définir les couleurs d&#39;arrière-plan
$bgColor = imagecolorallocate($image, 255, 255, 255);  // RGB (255, 255, 255) Représente le blanc
imagefill($image, 0, 0, $bgColor);

// Coordonnées du centre de la carte radar和半径
$centerX = 250;
$centerY = 250;
$radius = 200;

// données
$data = [80, 70, 90, 60, 85, 75];  // 每Données de chaque dimension值 (portée:0 - 100)

// 计算données点坐标
$points = [];
$numPoints = count($data);

for ($i = 0; $i < $numPoints; $i++) {
    $angle = (2 * M_PI * $i) / $numPoints;
    $x = $centerX + cos($angle) * ($radius * $data[$i] / 100);
    $y = $centerY + sin($angle) * ($radius * $data[$i] / 100);
    $points[] = $x;
    $points[] = $y;
}

// Régler la couleur
$polygonColor = imagecolorallocate($image, 0, 0, 255);

// Dessiner des polygones
imageopenpolygon($image, $points, $numPoints, $polygonColor);

// Image de sortie
header('Content-Type: image/png');
imagepng($image);

// Libérer les ressources
imagedestroy($image);
?>

4. Conclusion

Grâce à la fonction ImageOpenPolyGon () de PHP, nous pouvons facilement simuler et dessiner des graphiques radar, nous aidant à mieux afficher des données multidimensionnelles. Dans les applications pratiques, vous pouvez ajuster le nombre de dimensions, de couleurs et de cartographie des données en fonction de vos besoins, créant ainsi une carte radar plus complexe.