(PHP 4, PHP 5)
imageline — Dessine une ligne
imageline() 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, FALSE en cas d'échec.
Exemple 1167. 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
);
}
?>
imagecreatetruecolor() |
imagecolorallocate() |