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.
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.
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.
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
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
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
];
Verwenden Sie nun die Funktion imageOpenpolygon (), um das Dreieck zu zeichnen.
imagefilledpolygon($image, $points, 3, $black); // Dreieck füllen,3 为Scheitel数
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
<?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
?>
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.
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");
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.