<?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 — 直線を描画する
説明
bool ImagickDraw::line
( float
$sx
, float $sy
, float $ex
, float $ey
)警告
この関数は、 現在のところ詳細な情報はありません。引数のリストのみが 記述されています。
現在の描画色、透明度そして線幅を使用して画像上に直線を描画します。
パラメータ
-
sx -
開始位置の x 座標。
-
sy -
開始位置の y 座標。
-
ex -
終了位置の x 座標。
-
ey -
終了位置の y 座標。
返り値
値を返しません。
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;
?>
