Hachures

Contenu du snippet

Cette fonction permet de dessiner des hachures obliques dans une image existante.
L'image doit être créée avant l'appel à la fonction.
Les hachures sont dessinées dans un rectangle dont les coordonnées des angles NO et SE sont passées en paramètres.
Les hachures sont obliques, et la direction est passée en paramètre.
Tous les paramètres sont documentés.

Source / Exemple :


function hachures($im,$x1,$y1,$x2,$y2,$c,$pas,$ep,$dir)
//$im : image (identifiant de ressource)
//$x1,$y1 et $x2,$y2 sont les coordonnées des angles du rectangle
//$c : couleur (tableau contenant les composantes rvb)
//$pas : distance entre 2 hachures
//$ep : épaisseur d'une hachure
//$dir : direction des hachures (1 : SO/NE, 2 : NO/SE, 3 : les 2 (quadrillage))
{
  $l=$x2-$x1;
  $h=$y2-$y1;
  $t=$l+$h;
  $coul=imagecolorallocate($im, $c['r'], $c['v'], $c['b']);
  if ($dir!=2)
  {
    for ($i=0;$i<$t;$i+=$pas)
    {
       for ($e=0; $e<$ep; $e++)
       { $j=$i+$e; imageline($im,$x1+max(0,($j-$h)),$y1+min($j,$h),$x1+min($j,$l),$y1+max(0,($j-$l)),$coul); }
    }
  }
  if ($dir!=1)
  {
    for ($i=0;$i<$t;$i+=$pas)
    {
       for ($e=0; $e<$ep; $e++)
       { $j=$i+$e; imageline($im,$x1,$y1+($h-$j),$x1+$j,$y1+$h,$coul); }
    }
  }
}

Conclusion :


Exemple d'appel :

$im=imagecreate($L, $H);
hachures($im, 1, 1, $L-5, $H-1, array('r'=>128, 'v'=>128, 'b'=>255), 10, 3, 1);

Vous pouvez aussi créer l'image dans la fonction.

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.