<?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 — Dibuja una línea
Descripción
bool ImagickDraw::line
( float $sx
, float $sy
, float $ex
, float $ey
)
Warning
Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.
Dibuja una línea en la imagen usando el color de contorno actual, la opacidad de contorno, y el ancho de contorno.
Parámetros
- sx
-
coordenada x de inicio
- sy
-
coordenada y de inicio
- ex
-
coordenada x final
- ey
-
coordenada y final
Valores devueltos
No devuelve ningún valor.
GaryM at BinaryFarm dot com
24-Feb-2010 07:48
Axeia
31-Mar-2009 10: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;
?>
