<?php
|
/*---------------------------------------------------------------*/
|
/*
|
Titre : Dessine un polygone regulier plein
|
|
URL : https://phpsources.net/code_s.php?id=985
|
Date édition : 15 Fév 2019
|
*/
|
/*---------------------------------------------------------------*/
|
|
function regular_filled_polygon($image , $x0 , $y0 , $r , $nb_sommets ,
|
$couleur , $angle=0){
|
// la fonction reourne l'image avec un polygone dessine
|
// $image est une image cree avec imagecreate*(from*)()
|
// x0 et y0 sont les coordonnees du centre du polygone
|
// $r est le rayon du polygone
|
// $nb_sommets et le nombre de sommet du polygone (> 2)
|
// $couleur est la couleur cree avec imagecolorallocate
|
// l angle est un angle de rotation dans la figure
|
if (!is_resource($image)) return $image;
|
if (!is_long($n) || ($n < 2)) return $image;
|
if (!is_long($r) || ($r < 1)) return $image;
|
|
// s'il y a trop de cotés demandés, autant en faire un cercle!
|
$pixel = (1 - cos( pi()/$nb_sommets )) * $r;
|
if ( $pixel < 1){
|
imagefilledarc($image, $x0, $y0, 2*$r, 2*$r, 0, 360, $couleur);
|
return $image;
|
}
|
|
$poly = array();
|
for ($i = 0; $i < $nb_sommets; $i++){
|
$poly[] = $x0 + $r * cos(((2 * pi() * $i) / $nb_sommets) + deg2rad($angle));
|
$poly[] = $y0 + $r * sin(((2 * pi() * $i )/ $nb_sommets) + deg2rad($angle));
|
}
|
imagefilledpolygon($image, $poly, $nb_sommets, $couleur);
|
return $image;
|
}
|
|
?>
|
|
|