(PHP 4, PHP 5)
imageline — Dessine une ligne
Dessine une ligne entre deux points fournis.
Une ressource d'image, retourné par une des fonctions de création d'images, comme imagecreatetruecolor().
X : coordonnée du premier point.
Y : coordonnée du premier point.
X : coordonnée du second point.
Y : coordonnée du second point.
La couleur de remplissage. Un identifiant de couleur créé par la fonction imagecolorallocate().
Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.
Exemple #1 Trace 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);
}
?>