Position actuelle: Accueil> Derniers articles> Quel est le format correct pour les tableaux de coordonnées dans la fonction ImageFildPolygon? Une explication détaillée est là

Quel est le format correct pour les tableaux de coordonnées dans la fonction ImageFildPolygon? Une explication détaillée est là

gitbox 2025-09-12

Quel est le format correct pour les tableaux de coordonnées dans la fonction ImageFildPolygon? Une explication détaillée est là

En PHP, les fonctions sont utilisées pour dessiner un polygone rempli, qui est souvent utilisé pour générer des graphiques, fabriquer des graphiques dynamiques ou créer des formes simples. Pour utiliser cette fonction correctement, le point le plus critique est le format du "tableau de coordonnées". Cet article expliquera en détail l'écriture et les précautions correctes des tableaux de coordonnées.

Prototype de fonction

<span><span>bool</span></span><span> </span><span><span class="function_ invoke__">ImageFildPolygon</span></span> <span>(
    Ressource</span> <span><span>$ image</span></span> <span>,
    </span><span><span>tableau</span></span><span> </span><span><span>$ points</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>$ couleur</span></span><span>
)
</span><p>Description du paramètre:</p><ul><li> <span class="fun">$ Image</span> : Image Resource, créé par <span class="fun"><a href="/fr/php/imagecreatetruecolor.html" target="_blank">ImageCreateTrueColor ()</a></span> ou <span class="fun"><a href="/fr/php/imagecreate.html" target="_blank">ImageCreate ()</a></span> .</li><li> <span class="fun">$ Points</span> : un tableau de coordonnées qui définit chaque sommet d&#39;un polygone.</li><li> <span class="fun">$ num_points</span> : le nombre de sommets.</li><li> <span class="fun">$ couleur</span> : Color de remplissage de polygone, créé par <span class="fun"><a href="/fr/php/imagecolorallocate.html" target="_blank">ImageColorAllocate ()</a></span> .</li></ul><h2> Format correct du tableau de coordonnées</h2><p> <strong>Le point le plus important:</strong> le tableau de coordonnées doit être un tableau unidimensionnel, disposé dans l&#39;ordre de <span class="fun">x1, y1, x2, y2, x3, y3 ...</span> , et chacun des deux éléments représentent les coordonnées d&#39;un sommet.</p><p> Exemple:</p><pre>
<span><span>$ points</span></span> <span>= [
    </span><span><span>50</span></span> <span>,</span> <span><span>50</span></span> <span>,</span> <span><span>// le premier sommet (x1, y1)</span></span><span>
    </span><span><span>150</span></span> <span>,</span> <span><span>50</span></span> <span>,</span> <span><span>// le deuxième sommet (x2, y2)</span></span><span>
    </span><span><span>100</span></span> <span>,</span> <span><span>150</span></span><span>  </span><span><span>// le troisième sommet (x3, y3)</span></span><span>
]]
</span><span><span>$ num_points</span></span> <span>=</span> <span><span>3</span></span> <span>;
</span><p>Puis appelez la fonction:</p><pre>
<span><span class="function_ invoke__">ImageFildPolygon</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>$ couleur</span></span> <span>);
</span><p>Notes:</p><ol><li> Le tableau doit être unidimensionnel et les tableaux bidimensionnels ne peuvent pas être utilisés pour représenter les sommets, sinon la fonction rapportera une erreur.</li><li> <span class="fun">$ num_points</span> doit être égal au nombre de sommets, pas au nombre d&#39;éléments de tableau. N&#39;oubliez pas qu&#39;il y a deux éléments dans le tableau représentant un point.</li><li> Les coordonnées peuvent être des entiers ou des nombres à virgule flottante, mais sont généralement représentés par des entiers.</li><li> L&#39;ordre des sommets dans un tableau affectera la forme du polygone, et il est recommandé de les organiser dans le sens des aiguilles d&#39;une montre ou dans le sens antihoraire.</li></ol><h2> Exemple complet</h2><pre>
<span><span>$ Image</span></span> <span>=</span> <span><span class="function_ invoke__">ImageCreateTrueColor</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>ImageColorAllocate</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>$ blue</span></span> <span>=</span> <span><span class="function_ invoke__">ImageColorallocate</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>// remplit l&#39;arrière-plan</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>$ blanc</span></span> <span>);

</span><span><span>// Définir les sommets du triangle</span></span><span>
</span><span><span>$ Points</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>// dessiner des polygones de remplissage</span></span><span>
</span><span><span class="function_ invoke__">ImageFildPolygon</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>$ bleu</span></span> <span>);

</span><span><span>// image de sortie</span></span><span>
</span><span><span class="function_ invoke__">en-tête</span></span> <span>(</span> <span><span>"contenu-type: image / 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__">iMageDestroy</span></span> <span>(</span> <span><span>$ image</span></span> <span>);
</span><p>Exécutez le code ci-dessus pour obtenir un triangle rempli de bleu.</p><h2> Résumer</h2><p> Lorsque vous utilisez <span class="fun">ImageFildPolygon ()</span> , le tableau de coordonnées doit être un tableau unidimensionnel et les sommets sont disposés en ordre <span class="fun">x, y</span> . <span class="fun">$ num_points</span> correspond au nombre de sommets plutôt qu&#39;à la longueur du tableau. Maître ce format et vous pouvez dessiner n&#39;importe quel polygone en douceur.</p></div></div>