imageline

(PHP 4, PHP 5, PHP 7, PHP 8)

imagelineРисует отрезок

Описание

imageline(
    GdImage $image,
    int $x1,
    int $y1,
    int $x2,
    int $y2,
    int $color
): true

Функция рисует линию между двумя точками.

Список параметров

image

Объект GdImage, который вернула функция imagecreatetruecolor() или другая функция генерации изображений.

x1

Координата первой точки по оси x.

y1

Координата первой точки по оси y.

x2

Координата второй точки по оси x.

y2

Координата второй точки по оси y.

color

Цвет линии. Идентификатор цвета, который добавила в палитру изображения функция imagecolorallocate().

Возвращаемые значения

Функция возвращает логическое значение true.

Список изменений

Версия Описание
8.0.0 Параметр image теперь принимает объект GdImage; раньше параметр принимал корректный gd-ресурс (resource).

Примеры

Пример #1 Пример рисования жирной линии

<?php

function imagelinethick($image, $x1, $y1, $x2, $y2, $color, $thick = 1)
{
/* Способ хорошо работает только с ортогональными прямыми
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);
}

Смотрите также