In PHP werden Funktionen verwendet, um ein gefülltes Polygon zu zeichnen, das häufig zur Erzeugung von Grafiken, zum Erstellen dynamischer Diagramme oder zum Erstellen einfacher Formen verwendet wird. Um diese Funktion korrekt zu verwenden, ist der kritischste Punkt das Format des "Koordinatenarrays". In diesem Artikel wird das richtige Schreiben und Vorsichtsmaßnahmen von Koordinaten -Arrays im Detail erläutert.
<span><span>bool</span></span><span> </span><span><span class="function_ invoke__">BildgefüllterPolygon</span></span> <span>(
Ressource</span> <span><span>$ Image</span></span> <span>,
</span><span><span>Array</span></span><span> </span><span><span>$ punkte</span></span> <span>,
</span><span><span>int</span></span><span> </span><span><span>$ num_points</span></span> <span>,
</span><span><span>int</span></span><span> </span><span><span>$ Farbe</span></span><span>
)
</span><p>Parameterbeschreibung:</p><ul><li> <span class="fun">$ bild</span> : Bildressource, erstellt von <span class="fun">ImageCrreatTueColor ()</span> oder <span class="fun">Imagecrate ()</span> .</li><li> <span class="fun">$ Punkte</span> : Eine Reihe von Koordinaten, die jeden Scheitelpunkt eines Polygons definieren.</li><li> <span class="fun">$ num_points</span> : Die Anzahl der Scheitelpunkte.</li><li> <span class="fun">$ color</span> : polygon füllende Farbe, erzeugt von <span class="fun">ImageColOralCode ()</span> .</li></ul><h2> Richtiges Format des Koordinatenarrays</h2><p> <strong>Der wichtigste Punkt:</strong> Das Koordinatenarray muss ein eindimensionales Array sein, das in der Größenordnung von <span class="fun">X1, Y1, X2, Y2, X3, Y3 ...</span> angeordnet ist, und alle beiden Elemente repräsentieren die Koordinaten eines Scheitelpunkts.</p><p> Beispiel:</p><pre>
<span><span>$ punkte</span></span> <span>= [
</span><span><span>50</span></span> <span>,</span> <span><span>50</span></span> <span>,</span> <span><span>// der erste Scheitelpunkt (x1, y1)</span></span><span>
</span><span><span>150</span></span> <span>,</span> <span><span>50</span></span> <span>,</span> <span><span>// der zweite Scheitelpunkt (x2, y2)</span></span><span>
</span><span><span>100</span></span> <span>,</span> <span><span>150</span></span><span> </span><span><span>// der dritte Scheitelpunkt (x3, y3)</span></span><span>
];
</span><span><span>$ num_points</span></span> <span>=</span> <span><span>3</span></span> <span>;
</span><p>Rufen Sie dann die Funktion auf:</p><pre>
<span><span class="function_ invoke__">ImageFilledPolygon</span></span> <span>(</span> <span><span>$ image</span></span> <span>,</span> <span><span>$ points</span></span> <span>,</span> <span><span>$ num_points</span></span> <span>,</span> <span><span>$ color</span></span> <span>);
</span><p>Anmerkungen:</p><ol><li> Das Array muss eindimensional sein, und zweidimensionale Arrays können nicht zur Darstellung von Scheitelpunkten verwendet werden, andernfalls meldet die Funktion einen Fehler.</li><li> <span class="fun">$ num_points</span> müssen gleich der Anzahl der Scheitelpunkte sein, nicht der Anzahl der Array -Elemente. Denken Sie daran, dass es im Array zwei Elemente gibt, die einen Punkt darstellen.</li><li> Die Koordinaten können Ganzzahlen oder Schwimmpunktzahlen sein, werden jedoch normalerweise von Ganzzahlen dargestellt.</li><li> Die Reihenfolge der Scheitelpunkte in einem Array beeinflusst die Form des Polygons und wird empfohlen, sie im Uhrzeigersinn oder gegen den Uhrzeigersinn zu ordnen.</li></ol><h2> Vollständiges Beispiel</h2><pre>
<span><span>$ image</span></span> <span>=</span> <span><span class="function_ invoke__">ImageCrreatTueColor</span></span> <span>(</span> <span><span>200</span></span> <span>,</span> <span><span>200</span></span> <span>);
</span><span><span>$ white</span></span> <span><span>=</span></span> <span>imageblyColoralloclocation</span> <span><span class="function_ invoke__">(</span></span> <span>$</span> <span><span>image</span></span> <span><span>,</span></span> <span>255</span> <span><span>,</span></span> <span>255</span> <span>)</span> <span>;
</span><span><span>$ blau</span></span> <span>=</span> <span><span class="function_ invoke__">imagebildColorallocalcocation</span></span> <span>(</span> <span><span>$ image</span></span> <span>,</span> <span><span>0</span></span> <span>,</span> <span><span>0</span></span> <span>,</span> <span><span>255</span></span> <span>);
</span><span><span>// den Hintergrund füllen</span></span><span>
</span><span><span class="function_ invoke__">ImageFill</span></span> <span>(</span> <span><span>$ Image</span></span> <span>,</span> <span><span>0</span></span> <span>,</span> <span><span>0</span></span> <span>,</span> <span><span>$ White</span></span> <span>);
</span><span><span>// Dreiecksscheitelpunkte definieren</span></span><span>
</span><span><span>$ punkte</span></span> <span>= [</span> <span><span>50</span></span> <span>,</span> <span><span>50</span></span> <span>,</span> <span><span>150</span></span> <span>,</span> <span><span>50</span></span> <span>,</span> <span><span>100</span></span> <span>,</span> <span><span>150</span></span> <span>];
</span><span><span>$ num_points</span></span> <span>=</span> <span><span>3</span></span> <span>;
</span><span><span>// Füllpolygone zeichnen</span></span><span>
</span><span><span class="function_ invoke__">ImageFilledPolygon</span></span> <span>(</span> <span><span>$ image</span></span> <span>,</span> <span><span>$ points</span></span> <span>,</span> <span><span>$ num_points</span></span> <span>,</span> <span><span>$ blau</span></span> <span>);
</span><span><span>// Bild ausgeben</span></span><span>
</span><span><span class="function_ invoke__">Header</span></span> <span>(</span> <span><span>"Inhaltstyp: Bild/PNG"</span></span> <span>);
</span><span><span class="function_ invoke__">ImagePng</span></span> <span>(</span> <span><span>$ image</span></span> <span>);
</span><span><span class="function_ invoke__">ImagedStroy</span></span> <span>(</span> <span><span>$ Image</span></span> <span>);
</span><p>Führen Sie den obigen Code aus, um ein blau gefülltes Dreieck zu erhalten.</p><h2> Zusammenfassen</h2><p> Bei der Verwendung von <span class="fun">ImageFilledPolygon ()</span> muss das Koordinatenarray ein eindimensionales Array sein und die Eckpunkte sind in <span class="fun">x, y-</span> Reihenfolge angeordnet. <span class="fun">$ num_points</span> entspricht der Anzahl der Eckpunkte und nicht der Länge des Arrays. Beherrschen Sie dieses Format und Sie können jedes Polygon reibungslos zeichnen.</p></div></div>