Aktueller Standort: Startseite> Neueste Artikel> Detaillierte Erklärung und Beispiele für den Parameter der ImageOpenpolygon () -Funktion

Detaillierte Erklärung und Beispiele für den Parameter der ImageOpenpolygon () -Funktion

M66 2025-05-29

ImageOpenPolygon () ist eine sehr praktische Funktion, mit der Entwickler ein "offenes" Polygon auf einer Bildressource zeichnen können, dh eine sehr praktische Funktion, die den letzten Punkt des Polygons nicht automatisch an den ersten Punkt verbindet. Dies unterscheidet sich von der ImagePolygon () -Funktion (die den Pfad einschließt). Als nächstes erfahren wir mehr über die Parameter, Verwendung und praktische Anwendungsbeispiele von ImageOpenpolygon () .

Funktionsdefinition

 bool imageopenpolygon(
    GdImage $image,
    array $points,
    int $num_points,
    int $color
)

Hinweis: ImageOpenPolygon () erfordert Php 8.0.0 und höher und wird von der GD -Bibliothek unterstützt.

Parameterbeschreibung

  • Bild
    Typ: gdimage
    Beschreibung: Zielbildressource, die normalerweise durch Funktionen wie Imagecrreatetruecolor () oder Imagecrate () erstellt wurde.

  • Punkte
    Typ: Array
    Beschreibung: Ein eindimensionales Array, das Scheitelpunktkoordinaten enthält, muss das Array in der Reihenfolge von (x, y) Paaren angeordnet werden. Zum Beispiel [x1, y1, x2, y2, x3, y3, ...] .

  • num_points
    Typ: int
    Beschreibung: Anzahl der Eckpunkte, nicht die Anzahl der Array -Elemente (die Anzahl der Elemente ist doppelt so viele Eckpunkte).

  • Farbe
    Typ: int
    Beschreibung: Die Farbe, die zum Zeichnen von Polygonlinien verwendet wird. Erhalten Sie es durch die Funktion imageColOralLaCate () .

Basisnutzungsbeispiele

Erstellen wir ein einfaches PHP -Skript, um ein offenes Dreieck auf einem Bild zu zeichnen:

 <?php
// Erstellen a 200x200 Leere Leinwand
$image = imagecreatetruecolor(200, 200);

// Farben zuweisen
$white = imagecolorallocate($image, 255, 255, 255);
$blue = imagecolorallocate($image, 0, 0, 255);

// Gefüllter Hintergrund mit Weiß
imagefill($image, 0, 0, $white);

// Definieren Sie die drei Scheitelpunkte eines Dreiecks
$points = [
    50, 50,  // Scheitel1 (x1, y1)
    150, 50, // Scheitel2 (x2, y2)
    100, 150 // Scheitel3 (x3, y3)
];

// Zeichnen Sie ein offenes Dreieck
imageopenpolygon($image, $points, 3, $blue);

// Ausgabe Bild zum Browser
header('Content-Type: image/png');
imagepng($image);

// Ressourcen zerstören
imagedestroy($image);
?>

Wenn Sie den obigen Code im Browser ausführen, werden ein blaues offenes Dreieck mit seiner unteren Kante nicht automatisch geschlossen.

Beispiele für praktische Anwendungsszenarien

ImageOpenPolyGon () ist sehr nützlich, wenn Sie einen Image -Editor entwickeln, mit dem Benutzer benutzerdefinierte Grafiken manuell zeichnen können, und Benutzer möchten "Routen" anstelle von "geschlossenen Grafiken" zeichnen.

In einer Kartenanwendung kann beispielsweise ein Benutzer einen un nicht genannten Polyline -Pfad zeichnen, um die Route darzustellen:

 <?php
$image = imagecreatetruecolor(600, 400);
$background = imagecolorallocate($image, 240, 240, 240);
$pathColor = imagecolorallocate($image, 255, 0, 0);

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

// Angenommen, der vom Benutzer gezogene Pfad
$routePoints = [
    50, 100,
    200, 80,
    300, 150,
    450, 120
];

// Zeichnen Sie die Eröffnungsroute
imageopenpolygon($image, $routePoints, 4, $pathColor);

// Auf Server speichern
imagepng($image, '/var/www/m66.net/uploads/path_example.png');

// Aufräumen
imagedestroy($image);

echo "Roadmap gespart,Adresse anzeigen:https://m66.net/uploads/path_example.png";
?>

In diesem Beispiel generiert das System ein Bild mit roter Route und speichert es im Serververzeichnis von m66.net .

Dinge zu beachten

  • Die Reihenfolge der Punkte ist sehr wichtig, und die falsche Reihenfolge der Punkte kann zu unerwarteten Pfaden führen.

  • Die Anzahl der Elemente des Punktarrays sollte num_points * 2 sein, sonst kann eine Warnung geworfen werden.

  • ImageOpenPolygon () verbindet die Kopf- und Heckpunkte nicht automatisch. Wenn Sie schließen müssen, verwenden Sie bitte pagepolygon () .

Zusammenfassen

ImageOpenpolygon () eignet sich zum Zeichnen von nicht abgestimmten Polygonpfaden wie Pfadplanung, dynamischer Flugbahn, nicht entworfenen Mustern und anderen Szenarien. Durch das Beherrschen kann Ihr PHP -Grafikprozessor flexibler und vielseitiger werden.

Wenn Sie eine Webanwendung entwickeln, die gezeichnet werden muss, vergessen Sie nicht, sie flexibel zu verwenden, um die Benutzererfahrung auf die nächste Ebene zu bringen!