Manuel PHP

imageline

(PHP 4, PHP 5)

imageline — Dessine une ligne

Description

bool imageline ( resource $image , int $x1 , int $y1 , int $x2 , int $y2 , int $color )

imageline() dessine une ligne entre deux points fournis.

Liste de paramètres

image

Une ressource d'image, retourné par une des fonctions de création d'images, comme imagecreatetruecolor().

x1

X : coordonnée du premier point

y1

Y : coordonnée du premier point

x2

X : coordonnée du second point

y2

Y : coordonnée du second point

color

La couleur de remplissage. Un identifiant de couleur créé par la fonction imagecolorallocate()

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Example#1 Trace une ligne fine

  1. <?php
  2.  
  3. function imagelinethick($image, $x1, $y1, $x2, $y2, $color, $thick = 1)  
  4. { 
  5.    /* de cette manière, ca ne marche bien que pour les lignes orthogonales
  6.    imagesetthickness($image, $thick);
  7.    return imageline($image, $x1, $y1, $x2, $y2, $color);
  8.    */ 
  9.    if ($thick == 1) { 
  10.       return imageline($image, $x1, $y1, $x2, $y2, $color); 
  11.    } 
  12.    $t = $thick / 2 - 0.5; 
  13.    if ($x1 == $x2 || $y1 == $y2) { 
  14.       return imagefilledrectangle($image, round(min($x1, $x2) - $t), round(min($y1, $y2) - $t), round(max($x1, $x2) + $t), round(max($y1, $y2) + $t), $color); 
  15.    } 
  16.    $k = ($y2 - $y1) / ($x2 - $x1); //y = kx + q
  17.    $a = $t / sqrt(1 + pow($k, 2)); 
  18.    $points = array( 
  19.       round($x1 - (1+$k)*$a), round($y1 + (1-$k)*$a), 
  20.       round($x1 - (1-$k)*$a), round($y1 - (1+$k)*$a), 
  21.       round($x2 + (1+$k)*$a), round($y2 - (1-$k)*$a), 
  22.       round($x2 + (1-$k)*$a), round($y2 + (1+$k)*$a), 
  23.    ); 
  24.    imagefilledpolygon($image, $points, 4, $color); 
  25.    return imagepolygon($image, $points, 4, $color);  
  26. }  
  27.  
  28. ?> 


Remonter Remonter
L'éditeur javascript - CSS - Gentoo - Tutoriaux PHP - Tutoriels PHP - Breizh Blog