Aktueller Standort: Startseite> Neueste Artikel> Wie zeichne ich klarere und dickere Polygone mit ImageOpenpolygon () mithilfe von Imagesetthickness () -Funktion?

Wie zeichne ich klarere und dickere Polygone mit ImageOpenpolygon () mithilfe von Imagesetthickness () -Funktion?

M66 2025-07-18

Beim Zeichnen von Diagrammen mithilfe der GD -Bibliothek von PHP ist ImageOpenPolygon () eine sehr praktische Funktion, die uns hilft, offene (nicht abgestellte) Polygonlinien zu zeichnen. Die standardmäßigen Linien sind jedoch möglicherweise dünner und sind in einigen Szenarien mit hohen visuellen Anforderungen nicht auffällig.

Um Polygonlinien dicker und klarer zu machen, ist die ficthickness () -Funktion nützlich. In diesem Artikel wird ein Polygoneffekt gezeichnet, der den Anforderungen durch die Verwendung dieser beiden Funktionen mehr entspricht.

Grundlegende Einführung

  • ImageOpenpolygon (Ressource $ Image, Array $ Punkte, int $ num_points, int $ color): bool

    Diese Funktion zeichnet einen offenen Polygonpfad auf dem Bild basierend auf dem angegebenen Punktessatz.

  • Imagesetthickness (Ressource $ Image, int $ Dicke): bool

    Diese Funktion wird verwendet, um die Leitungsdicke beim Zeichnen einer geraden Linie einzustellen.

Hinweis : ImagesThickness () legt die globale Dicke der geraden Zeichnung fest, die alle nachfolgenden Linienzeichnungen beeinflusst.

Praktische Beispiele

Hier ist ein komplettes Beispiel, um zu demonstrieren, wie ein Pentagon mit dicken Linien zeichnet.

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

// 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 Eckpunkte eines Pentagons
$points = [
    200, 50,   // Scheitel1
    300, 150,  // Scheitel2
    250, 300,  // Scheitel3
    150, 300,  // Scheitel4
    100, 150   // Scheitel5
];

// Zeilendicke einstellen
imagesetthickness($image, 5);

// Polygone aufziehen
imageopenpolygon($image, $points, count($points), $blue);

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

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

Im obigen Beispiel Imagesetthickness ($ Image, 5); Stellen Sie die Leitungsbreite auf 5 Pixel ein, damit die gezogenen Polygone dicker sind als die Standard-1-Pixel-Linie, und der visuelle Effekt wird erheblich verbessert.

Tipps

  • Anpassen der Dicke : Wenn Sie möchten, dass verschiedene Liniensegmente unterschiedliche Dicken aufweisen, müssen Sie Bilderetthickness () dynamisch festlegen, bevor Sie jede Zeile zeichnen. Für Stapelzeichnungsfunktionen wie ImageOpenpolygon () können sie jedoch nur einheitlich eingestellt werden.

  • Ausgabeoptimierung : Wenn Sie die generierten Grafiken auf dem Server speichern möchten, können Sie ImagePNG ($ Image, /path/to/save/polygon.png ') verwenden; und verweisen Sie dann auf der Seite, zum Beispiel:

 <img src="https://m66.net/path/to/save/polygon.png" alt="Beispiel für dicke Linienpolygone">
  • Vermeiden Sie Jaggen : Um dicke Linien glatter aussehen zu lassen, können Sie größere Größen verwenden, wenn Sie Leinwand und indirekt gegen Aliasing durch Skalieren des Ausgangs erstellen.

Zusammenfassen

Durch die Kombination von Imagesetthickness () und imageOpenpolygon () können wir leicht dickere und auffälligere Polygone zeichnen, was sehr nützlich ist, um Szenen wie schematische Diagramme, Spielkarten, Datenvisualisierungen usw. zu erzeugen. Die Kombination dieser beiden verbessert Ihre Flexibilität und Ausdruckskraft in der Grafikverarbeitung stark.