```IMAGELINE(3)								 1							      IMAGELINE(3)

imageline - Draw a line

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

DESCRIPTION
Draws a line between the two given points.

PARAMETERS
o \$
image -An image resource, returned by one of the image creation functions, such as imagecreatetruecolor(3).

o \$x1
- x-coordinate for first point.

o \$y1
- y-coordinate for first point.

o \$x2
- x-coordinate for second point.

o \$y2
- y-coordinate for second point.

o \$color
- The line color. A color identifier created with imagecolorallocate(3).

RETURN VALUES
Returns TRUE on success or FALSE on failure.

EXAMPLES
Example #1

Drawing a thick line

<?php

function imagelinethick(\$image, \$x1, \$y1, \$x2, \$y2, \$color, \$thick = 1)
{
/* this way it works well only for orthogonal lines
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);
}

?>