Aktueller Standort: Startseite> Neueste Artikel> So verwenden Sie ImageOpenpolygon (), um die Zeichnung des Radarbildes/Spinnenbildes zu simulieren

So verwenden Sie ImageOpenpolygon (), um die Zeichnung des Radarbildes/Spinnenbildes zu simulieren

M66 2025-05-31

Bei der Datenvisualisierung ist ein Radar-Diagramm (oder Spinnendiagramm) ein sehr nützliches Diagramm, mit dem wir mehrdimensionale Daten visuell anzeigen können. Für PHP -Entwickler kann die ImageOpenPolygon () -Funktion verwendet werden, um das Zeichnen von Radardiagrammen zu simulieren. Diese Funktion ist Teil der GD -Bibliothek, mit der wir Polygone in Bildern zeichnen können. Durch ein vernünftiges Einstellen der Eckpunkte kann der Effekt der Radarkarte erreicht werden. In diesem Artikel wird vorgestellt, wie ein Radardiagramm unter Verwendung von PHPs ImageOpenPolygon () -Funktion zeichnet.

1. Das Konzept des Radardiagramms

Das Radar -Diagramm, auch als Spinnendiagramm bekannt, ist ein Diagramm, in dem mehrdimensionale Daten angezeigt werden. Jeder Datenpunkt repräsentiert eine Dimension des Graphen, und die Datenwerte werden über Scheitelpunkte angeschlossen, um ein geschlossenes Polygon zu bilden. Es eignet sich zum Anzeigen von Beziehungen zwischen mehreren Variablen, insbesondere wenn Sie mehrere Objekte oder Dimensionen vergleichen müssen.

2. Verwenden Sie ImageOpenpolygon () , um das Radardiagramm zu zeichnen

Die ImageOpenPolygon () -Funktion ist eine Funktion in der PHP -GD -Bibliothek und wird normalerweise zum Zeichnen von Polygonen in Bildern verwendet. Beim Zeichnen eines Radardiagramms können wir diese Funktion verwenden, um ein Polygon zu zeichnen und sich an verschiedene Datenabmessungen anzupassen, indem die Eckpunkte des Polygons angepasst werden.

Grundlegende Syntax:

 imageopenpolygon($image, $points, $num_points, $color);
  • $ Bild : Zielbildressource.

  • $ Punkte : Ein Array, das alle Scheitelpunktkoordinaten enthält.

  • $ num_points : Die Anzahl der Scheitelpunkte.

  • $ Farbe : Die Farbe des Polygons.

Schritt 1: Initialisieren Sie das Bild

Zunächst müssen wir eine Bildressource erstellen und eine Hintergrundfarbe für das Bild festlegen.

 <?php
// Erstellen a 500x500 Leeres Bild
$image = imagecreatetruecolor(500, 500);

// Setzen Sie die Hintergrundfarbe auf Weiß
$bgColor = imagecolorallocate($image, 255, 255, 255);  // RGB (255, 255, 255) Repräsentiert Weiß
imagefill($image, 0, 0, $bgColor);
?>

Schritt 2: Stellen Sie die Mitte und den Radius der Radarkarte ein

Der Mittelpunkt des Radardiagramms ist die Mitte des Diagramms, und die Datenpunkte jeder Dimension bestimmen ihren Abstand von der Mitte basierend auf ihren Werten. Angenommen, wir teilen den Diagramm in 6 Dimensionen und setzen den Radius auf 200.

 <?php
// Radarkarten -Zentrumkoordinaten
$centerX = 250;
$centerY = 250;
$radius = 200;
?>

Schritt 3: Berechnen Sie die Datenpunkte jeder Dimension

Wir müssen die Koordinaten von Datenpunkten für jede Dimension berechnen. Diese Koordinaten bestimmen die Eckpunkte des Polygons.

 <?php
// Angenommen, es gibt es 6 Daten in jeder Dimension
$data = [80, 70, 90, 60, 85, 75];  // 每Daten in jeder Dimension值 (Umfang:0 - 100)

// 将每Daten in jeder Dimension映射到半径
$points = [];
$numPoints = count($data);

for ($i = 0; $i < $numPoints; $i++) {
    // Winkel berechnen
    $angle = (2 * M_PI * $i) / $numPoints;
    
    // Berechnen Sie die Koordinaten jedes Datenpunkts
    $x = $centerX + cos($angle) * ($radius * $data[$i] / 100);
    $y = $centerY + sin($angle) * ($radius * $data[$i] / 100);
    
    // Scheitelpunktkoordinaten speichern
    $points[] = $x;
    $points[] = $y;
}
?>

Schritt 4: Zeichnen Sie das Radardiagramm

Als nächstes verwenden wir die ImageOpenPolygon () -Funktion, um die Polygone zu zeichnen und diese Scheitelpunkte zu verbinden.

 <?php
// Stellen Sie die Farbe des Polygons auf Blau ein
$polygonColor = imagecolorallocate($image, 0, 0, 255);

// Polygone von Radardiagrammen zeichnen
imageopenpolygon($image, $points, $numPoints, $polygonColor);
?>

Schritt 5: Ausgabe des Bildes ausgeben

Schließlich geben wir das erzeugte Bild aus.

 <?php
// Das Ausgangsbild ist PNG Format
header('Content-Type: image/png');
imagepng($image);

// Zerstöre Bildressourcen
imagedestroy($image);
?>

3. CODE CODE

Kombinieren Sie die oben genannten Code -Snippets, und der endgültige Code lautet wie folgt:

 <?php
// Bildressourcen erstellen
$image = imagecreatetruecolor(500, 500);

// Hintergrundfarben setzen
$bgColor = imagecolorallocate($image, 255, 255, 255);  // RGB (255, 255, 255) Repräsentiert Weiß
imagefill($image, 0, 0, $bgColor);

// Radarkarten -Zentrumkoordinaten和半径
$centerX = 250;
$centerY = 250;
$radius = 200;

// Daten
$data = [80, 70, 90, 60, 85, 75];  // 每Daten in jeder Dimension值 (Umfang:0 - 100)

// 计算Daten点坐标
$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;
}

// Farbe setzen
$polygonColor = imagecolorallocate($image, 0, 0, 255);

// Polygone zeichnen
imageopenpolygon($image, $points, $numPoints, $polygonColor);

// Ausgabebild
header('Content-Type: image/png');
imagepng($image);

// Ressourcen frei machen
imagedestroy($image);
?>

4. Schlussfolgerung

Durch die ImageOpenPolygon () -Funktion von PHP können wir Radardiagramme problemlos simulieren und zeichnen, wodurch wir besser mehrdimensionale Daten anzeigen können. In praktischen Anwendungen können Sie die Anzahl der Abmessungen, Farben und Datenzuordnung entsprechend Ihren Anforderungen anpassen und so eine komplexere Radarkarte erstellen.