Bei Verwendung von PHP zum Verarbeiten von Bildern ist ImageOpenPolygon () eine sehr praktische Funktion, die offene Polygonpfade zeichnen kann (d. H. Kopf und Schwanz sind nicht automatisch angeschlossen). Viele Freunde können jedoch bei der Verwendung verwirrt sein:
Um dieses Problem herauszufinden, haben wir detaillierte Tests durchgeführt. Schauen wir uns unten einen Blick zusammen.
In der GD -Bibliothek von PHP wird ImageOpenPolygon () zum Zeichnen offener Polygonlinien verwendet. Im Gegensatz zu ImagePolygon () verbindet es den ersten Punkt und den letzten Punkt nicht automatisch.
Basisnutzungsbeispiele:
<?php
// Erstellen Sie eine Leinwand
$image = imagecreatetruecolor(400, 400);
// Setzen Sie die Hintergrundfarbe auf Weiß
$white = imagecolorallocate($image, 255, 255, 255);
imagefill($image, 0, 0, $white);
// Stellen Sie die Linienfarbe auf Blau ein
$blue = imagecolorallocate($image, 0, 0, 255);
// Definieren Sie ein Punktarray(Im Uhrzeigersinn)
$points = [
50, 50, // Der erste Punkt
150, 50, // Der zweite Punkt
150, 150,// Der dritte Punkt
50, 150 // Der vierte Punkt
];
// Polygone aufziehen
imageopenpolygon($image, $points, count($points) / 2, $blue);
// Ausgabe Bild
header('Content-Type: image/png');
imagepng($image);
imagedestroy($image);
?>
Nach dem Ausführen dieses Codes sehen Sie ein U-förmiges offenes Viereck, bei dem keine Verbindung zwischen dem Startpunkt und dem Endpunkt besteht .
Als nächstes passen wir die Reihenfolge der Punkte an gegen den Uhrzeigersinn an:
$points = [
50, 50, // Der erste Punkt
50, 150, // Der zweite Punkt
150, 150,// Der dritte Punkt
150, 50 // Der vierte Punkt
];
Laufen Sie erneut, die gezogene Form ist noch offen, außer dass sich die Linien anders bewegen .
Zusammenfassung 1 :
Die Koordinatenreihenfolge lässt die Abbildung nicht schließen .
Die Koordinatenreihenfolge beeinflusst nur die Zeichnungsreihenfolge der Linien (dh die Richtung der Linien ändert sich).
Wenn Sie möchten, dass die Figur geschlossen aussieht, müssen Sie zum Beispiel den ersten Punkt zum Ende des Arrays hinzufügen:
$points = [
50, 50,
150, 50,
150, 150,
50, 150,
50, 50 // 再加一次Der erste Punkt
];
Auf diese Weise wird die von ImageOpenpolygon () gezeichnete Figur mit dem Ende verbunden und sieht aus wie ein geschlossenes Polygon!
Um die Anzeige verschiedener Effekte zu erleichtern, finden Sie hier eine Beispiel -Bildadresse:
Beispiel im Uhrzeigersinn: Beispiel anzeigen
Beispiel gegen den Uhrzeigersinn: Beispiel anzeigen
Handbuch Schließbeispiel: Beispiel anzeigen
(Wenn Sie es selbst generieren möchten, können Sie es auch mit dem obigen PHP -Code direkt versuchen.)
ImageOpenPolygon () ist unabhängig von der Koordinatenreihenfolge nicht standardmäßig geschlossen .
Wenn Sie schließen müssen, müssen Sie den ersten Punkt am Ende hinzufügen .
Die Koordinatenreihenfolge beeinflusst die Richtung der Linienzeichnung und nicht auf geschlossenes Verhalten.
Ich hoffe, diese praktische Erklärung kann Ihnen helfen, die kleinen Details von ImageOpenpolygon () in der tatsächlichen Entwicklung schnell zu verstehen und zu beherrschen!