Aktueller Standort: Startseite> Neueste Artikel> Verwenden Sie ImageOpenpolygon (), um komplexe Grafiken wie Sterne und Schneeflocken zu zeichnen

Verwenden Sie ImageOpenpolygon (), um komplexe Grafiken wie Sterne und Schneeflocken zu zeichnen

M66 2025-06-05

Im PHP ist ImageOpenPolygon () eine sehr interessante Funktion, mit der Sie offene (nicht geschlossen) Polygone durch eine Reihe von Koordinatenpunkten zeichnen können. Dies ist besonders nützlich, wenn Sie komplexe Grafiken wie Stern- oder Schneeflockenmuster zeichnen müssen.

In diesem Artikel wird anhand von Beispielen erläutert, wie Sie ImageOpenpolygon () verwenden und zeigen, wie Sie einen einfachen Fünf-Punkte-Stern und eine grundlegende Schneeflockenstruktur zeichnen.

Grundlegendes Verständnis: ImageOpenpolygon () Funktion

 bool imageopenpolygon(
    GdImage $image,
    array $points,
    int $num_points,
    int $color
)
  • $ Image : Die zu zeichnere Bildressource.

  • $ Punkte : Ein Array, das alle Scheitelpunktkoordinaten in der Form [x1, y1, x2, y2, ...] enthält.

  • $ num_points : Die Anzahl der Scheitelpunkte.

  • $ Farbe : Die Farbe der Linie.

Hinweis: ImageOpenPolygon () verbindet diese Punkte in der Reihenfolge, schließt die Abbildung jedoch nicht automatisch.

Beispiel 1: Zeichnen Sie einen fünffachen Stern

Zunächst erstellen wir eine Leinwand und zeichnen einen einfachen fünffachen Stern:

 <?php
// Erstellen Sie eine Leinwand
$image = imagecreatetruecolor(300, 300);

// Farben zuweisen
$backgroundColor = imagecolorallocate($image, 255, 255, 255); // Weißer Hintergrund
$starColor = imagecolorallocate($image, 255, 0, 0); // Roter Stern

// Füllen Sie den Hintergrund
imagefill($image, 0, 0, $backgroundColor);

// Definieren Sie den Scheitelpunkt des fünffachen Sterns
$points = [
    150, 20,   // Spitze
    179, 110,
    270, 110,
    197, 165,
    220, 250,
    150, 200,
    80, 250,
    103, 165,
    30, 110,
    121, 110
];

// Zeichnen Sie Pentagramme auf
imageopenpolygon($image, $points, count($points) / 2, $starColor);

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

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

Greifen Sie nach dem Speichern als star.php im Browser darauf zu, z. B.:

 https://m66.net/star.php

Sie können den gezogenen Fünf-Punkte-Stern sehen.

Beispiel 2: Zeichnen Sie ein grundlegendes Schneeflockenmuster

Eine einfache Schneeflocke kann durch zentral symmetrische Strahlungslinien simuliert werden:

 <?php
$image = imagecreatetruecolor(300, 300);
$backgroundColor = imagecolorallocate($image, 255, 255, 255);
$snowColor = imagecolorallocate($image, 0, 0, 255);

imagefill($image, 0, 0, $backgroundColor);

// Schneeflockenzentrum
$centerX = 150;
$centerY = 150;
$length = 100;
$arms = 6;

// Berechnen Sie jeden Punkt
$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;
}

// Schneeflocken zeichnen
imageopenpolygon($image, $points, count($points) / 2, $snowColor);

header('Content-Type: image/png');
imagepng($image);
imagedestroy($image);
?>

Nachdem Sie als Snowflake.php gespeichert sind, Zugang im Browser:

 https://m66.net/snowflake.php

Sie können eine radiale grundlegende Schneeflockenstruktur sehen!

Zusammenfassung

ImageOpenPolygon () ist ein leistungsstarkes Werkzeug zum Zeichnen von Grafiken vom Open-Typ. In Kombination mit mathematischen Berechnungen (wie trigonometrischen Funktionen) können Sie verschiedene interessante und komplexe Grafiken wie Sterne, Schneeflocken und noch komplexere künstlerische Muster erstellen.

Wenn Sie kühlere komplexe Grafiken generieren möchten, können Sie in Betracht ziehen, die Loop -Logik zu kombinieren und Algorithmen zu koordinieren, um diese Zeichnungsfähigkeit weiter zu erweitern!