Manuel PHP
Précédent |  | Suivant

# imageline

(PHP 3, 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 depuis le point (x1,y1) jusqu'au point (x2,y2) (le coin supérieur gauche est l'origine (0,0)) dans l'image image et avec la couleur color.

Exemple 1. Tracer une ligne fine

`<?php
function imagelinethick($image, $x1, $y1, $x2, $y2, $color, $thick = 1)
{
/* de cette manière, ca ne marche bien que pour les lignes orthogonales
imagesetthickness($image, $thick);
return imageline($image, $x1, $y1, $x2, $y2, $color);
*/
if ($thick == 1) {
return imageline($image, $x1, $y1, $x2, $y2, $color);
}
$t = $thick / 2 - 0.5;
if ($x1 == $x2 || $y1 == $y2) {
return imagefilledrectangle($image, round(min($x1, $x2) - $t), round(min($y1, $y2) - $t), round(max($x1, $x2) + $t), round(max($y1, $y2) + $t), $color);
}
$k = ($y2 - $y1) / ($x2 - $x1); //y = kx + q
$a = $t / sqrt(1 + pow($k, 2));
$points = array(
round($x1 - (1+$k)*$a), round($y1 + (1-$k)*$a),
round($x1 - (1-$k)*$a), round($y1 - (1+$k)*$a),
round($x2 + (1+$k)*$a), round($y2 - (1-$k)*$a),
round($x2 + (1-$k)*$a), round($y2 + (1+$k)*$a),
);
imagefilledpolygon($image, $points, 4, $color);
return imagepolygon($image, $points, 4, $color);
}
?>`

Voir aussi imagecreatetruecolor() et imagecolorallocate().

Précédent | Sommaire | Suivant
imagelayereffect | Niveau supérieur | imageloadfont