<?php
// a twist on the above radar screen.
// This makes random colored spokes from a center point
$width = 400;
$height = 400;
$image = new Imagick();
$image->newImage( $width, $height, new ImagickPixel( 'wheat' ) );
$draw = new ImagickDraw();
//$draw->setStrokeColor( new ImagickPixel( 'black' ) );
$rx = $width / 2;
$ry = $height / 2;
$total = 2*M_PI;
$part = $total / 16;
while( $total > 0 )
{
$ex = $rx +$rx * sin( $total );
$ey = $ry +$ry * cos( $total );
$draw->line ( $rx, $ry, $ex, $ey );
$total -= $part;
// We need three HEX numbers to create an RGB color code like '#FF33DD'.
$draw->setStrokeColor( get_random_color() );
}
$image->drawImage( $draw );
$image->setImageFormat( "png" );
header( "Content-Type: image/png" );
echo $image;
exit;
function get_random_color() // Thanks to Greg R. for this nice little function.
{
for ($i = 0; $i<6; $i++)
{
$c .= dechex(rand(0,15));
}
return "#$c";
}
?>
ImagickDraw::line
(PECL imagick 2.0.0)
ImagickDraw::line — Dessine une ligne
Description
bool ImagickDraw::line
( float
$sx
, float $sy
, float $ex
, float $ey
)Avertissement
Cette fonction n'est pas documentée et seule la liste des arguments est disponible.
Dessine une ligne en utilisant la couleur de trait courante, son opacité, et sa largeur.
Liste de paramètres
-
sx -
L'abscisse de début
-
sy -
L'ordonnée de début
-
ex -
L'abscisse de fin
-
ey -
L'ordonnée de fin
Valeurs de retour
Aucune valeur n'est retournée.
GaryM at BinaryFarm dot com
24-Feb-2010 11:48
Axeia
31-Mar-2009 02:53
A small example on how to draw lines and output it as a PNG as the documentation is quite poor at the moment.
This example draws a bunch of lines towards the center of the image, useful if you want to make a spiderweb, or radar-chart.. or something along those lines.
<?php
$width = 200;
$height = 200;
$border = 2;
$img = new Imagick();
$img->newImage( $width, $height, new ImagickPixel( 'lime' ) );
$draw = new ImagickDraw();
$draw->setStrokeColor( new ImagickPixel( 'black' ) );
$rx = $width / 2;
$ry = $height / 2;
$total = 2*M_PI;
$part = $total / 12;
while( $total > 0 )
{
$ex = $rx +$rx * sin( $total );
$ey = $ry +$ry * cos( $total );
$draw->line ( $rx, $ry, $ex, $ey );
$total -= $part;
}
$img->drawImage( $draw );
$img->setImageFormat( "png" );
header( "Content-Type: image/png" );
echo $img;
?>
