Aktueller Standort: Startseite> Neueste Artikel> Der vollständige Prozess des Zeichnens eines regulären Dreiecks mit ImageOpenpolygon ()

Der vollständige Prozess des Zeichnens eines regulären Dreiecks mit ImageOpenpolygon ()

M66 2025-05-29

In PHP können wir die Funktion imageOpenpolygon () verwenden, um Polygone zu zeichnen. Indem wir diese Funktion rational nutzen, können wir nicht nur ein Polygon zeichnen, sondern auch einfache Formen wie normale Dreiecke zeichnen. In diesem Artikel wird detailliert vorgestellt, wie ein reguläres Dreieck durch die ImageOpenPolygon () -Funktion zeichnet.

Was ist die ImageOpenPolygon () -Funktion?

Die ImageOpenPolygon () -Funktion ist Teil der GD -Bibliothek in PHP, mit der wir Polygone durch einen Satz von Scheitelpunkten zeichnen können. Das grundlegende Nutzungsformat der Funktion lautet wie folgt:

 imageopenpolygon($image, $points, $num_points, $color);
  • $ bild : Bildressource, normalerweise eine Bildressource, die von ImageCrreatTueColor () oder einer anderen Bilderstellung erstellt wurde.

  • $ Punkte : Ein Array, das die Koordinaten der Polygonscheitelpunkte enthält.

  • $ num_points : Die Anzahl der Scheitelpunkte.

  • $ Farbe : Die Farbe, die beim Zeichnen von Polygonen verwendet wird.

Wie zeichne ich ein reguläres Dreieck?

Das Merkmal eines normalen Dreiecks ist, dass die Längen der drei Seiten gleich und die drei inneren Winkel gleich sind (60 Grad). Um ein reguläres Dreieck auf der Leinwand zu zeichnen, müssen wir zunächst die Koordinaten der drei Eckpunkte bestimmen. Angenommen, wir wählen eine geeignete Seitenlänge und einen geeigneten Ausgangspunkt, um die Positionen dieser drei Scheitelpunkte zu berechnen.

Schritt 1: Erstellen Sie eine Bildressource

Wir müssen zunächst eine Bildressource erstellen. Verwenden Sie die Funktion "ImagecrreatTueColor (), um eine leere Leinwand zu erstellen.

 $image = imagecreatetruecolor(200, 200);  // Erstellen a 200x200 Leinwand

Schritt 2: Definieren Sie die Farbe des Dreiecks

Verwenden Sie die Funktion "ImageColOralLaCate () , um die Farbe für das gezogene Dreieck zu definieren.

 $white = imagecolorallocate($image, 255, 255, 255);  // Setzen Sie die Farbe auf Weiß
$black = imagecolorallocate($image, 0, 0, 0);  // Setzen Sie die Randfarbe auf schwarz

Schritt 3: Berechnen Sie die Eckpunkte des Dreiecks

Basierend auf den geometrischen Eigenschaften eines regulären Dreiecks können wir seine Eckpunkte berechnen. Angenommen, die Seite ist 100 Pixel lang und die Eckpunkte des Dreiecks werden in der Mitte der Leinwand platziert.

 $centerX = 100;  // Canvas Center X koordinieren
$centerY = 100;  // Canvas Center Y koordinieren
$sideLength = 100;  // Seitenlänge

// 计算三角形的三个Scheitelkoordinieren
$points = [
    $centerX, $centerY - $sideLength / 2, // Scheitel1
    $centerX - $sideLength / 2, $centerY + $sideLength / 2, // Scheitel2
    $centerX + $sideLength / 2, $centerY + $sideLength / 2 // Scheitel3
];

Schritt 4: Zeichnen Sie das Dreieck

Verwenden Sie nun die Funktion imageOpenpolygon (), um das Dreieck zu zeichnen.

 imagefilledpolygon($image, $points, 3, $black);  // Dreieck füllen,3 为Scheitel数

Schritt 5: Ausgabe des Bildes und die Ressourcen beseitigen

Schließlich geben Sie das Bild aus und befreien Sie die Ressource.

 header("Content-type: image/png");
imagepng($image);  // Ausgabebild
imagedestroy($image);  // Zerstöre Bildressourcen

Vollständiger Codebeispiel

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

// Definieren Sie die Farbe
$white = imagecolorallocate($image, 255, 255, 255);  // Weiß
$black = imagecolorallocate($image, 0, 0, 0);  // Schwarz

// 计算三角形的Scheitel
$centerX = 100;
$centerY = 100;
$sideLength = 100;
$points = [
    $centerX, $centerY - $sideLength / 2, // Scheitel1
    $centerX - $sideLength / 2, $centerY + $sideLength / 2, // Scheitel2
    $centerX + $sideLength / 2, $centerY + $sideLength / 2 // Scheitel3
];

// Zeichnen Sie ein Dreieck
imagefilledpolygon($image, $points, 3, $black);  // Dreieck füllen

// Ausgabebild并清理资源
header("Content-type: image/png");
imagepng($image);  // Ausgabebild
imagedestroy($image);  // Zerstöre Bildressourcen
?>

veranschaulichen

  • ImageCrreatetRueColor () wird verwendet, um eine Leinwand mit einer Größe von 200x200 zu erstellen, die ausreicht, um ein normales Dreieck aufzunehmen.

  • ImageColOralCode () wird verwendet, um die Farbe auf die Leinwand zu setzen, den Hintergrund mit Weiß zu füllen und Dreiecke in Schwarz zu zeichnen.

  • ImageFilledPolygon () ist eine Schlüsselfunktion zum Zeichnen von Dreiecken, die Dreiecke basierend auf dem bereitgestellten Scheitelpunktarray zeichnet.

Dinge zu beachten

  • ImageOpenPolygon () eignet sich nur für Polygone. Um sicherzustellen, dass die Grenzen gefüllt sind, verwenden wir die imageFilt -Funchpolygon () -Funktion.

  • Wenn Sie ein Bild generieren und in einer Datei speichern müssen, können Sie imagePng () das Bild in einer angegebenen Datei speichern, z. B.:

 imagepng($image, "triangle.png");

Abschluss

Mit der obigen Methode können Sie ein reguläres Dreieck mit den Funktionen von ImageOpenPolygon () und imageFilldPolygon () zeichnen. Sie können die Größe, Farbe oder Position des Dreiecks nach Bedarf einstellen. Dieses Beispiel zeigt, wie Sie grundlegende geometrische Formen mit der PHP -GD -Bibliothek zeichnen, die Sie erweitern können, um komplexere Formen zu zeichnen.