<?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
)Advertencia
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 ¶
3 years ago
Axeia ¶
4 years ago
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;
?>
