Draw An Angled Line In PHP

Use the following function to draw a line with a given angle and set length between two points.

/**
 * Draw a line of a set length, from a given y,x
 *
 * @param resource $image
 *   The image resource.
 * @param int $x1
 *   The X coordinate of the start of the line.
 * @param int $y1
 *   The Y coordinate of the start of the line.
 * @param int $length
 *   The length of the line, in pixels.
 * @param float $angle
 *   The angle of the line, in degrees.
 * @param int $color
 *   The colour resource, created with imagecolorallocate().
 */
function imageAngledLine($image, int $x1, int $y1, int $length, float $angle, $color) {
  $x2 = $x1 + sin(deg2rad($angle)) * $length;
  $y2 = $y1 + cos(deg2rad($angle + 180)) * $length;
  imageline($image, $x1, $y1, $x2, $y2, $color);
}

This can be used in the following way.

$height = 500;
$width = 500;
$img = imagecreatetruecolor($width, $height);
$white = imagecolorallocate($img, 255, 255, 255);
imagepolarline($img, 10, 10, 45, $white);

This assumes that you are using the GD2 library.

Add new comment

The content of this field is kept private and will not be shown publicly.
CAPTCHA
10 + 8 =
Solve this simple math problem and enter the result. E.g. for 1+3, enter 4.
This question is for testing whether or not you are a human visitor and to prevent automated spam submissions.