Aktueller Standort: Startseite> Neueste Artikel> Der Effekt der Koordinatenreihenfolge auf den Schließeffekt in ImageOpenpolygon ()

Der Effekt der Koordinatenreihenfolge auf den Schließeffekt in ImageOpenpolygon ()

M66 2025-06-02

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.

Was ist ImageOpenpolygon ()

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 .

Ändern Sie die Koordinatenreihenfolge, um den Effekt anzuzeigen

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).

Was ist, wenn ich manuell schließen möchte?

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!

Beispieldiagrammvorschau

Um die Anzeige verschiedener Effekte zu erleichtern, finden Sie hier eine Beispiel -Bildadresse:

(Wenn Sie es selbst generieren möchten, können Sie es auch mit dem obigen PHP -Code direkt versuchen.)

Zusammenfassung

  • 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!