ImagickDraw
在线手册:中文 英文
PHP手册

ImagickDraw::line

(PECL imagick 2.0.0)

ImagickDraw::lineDraws a line

说明

bool ImagickDraw::line ( float $sx , float $sy , float $ex , float $ey )
Warning

本函数还未编写文档,仅有参数列表。

Draws a line on the image using the current stroke color, stroke opacity, and stroke width.

参数

sx

starting x coordinate

sy

starting y coordinate

ex

ending x coordinate

ey

ending y coordinate

返回值

没有返回值。


ImagickDraw
在线手册:中文 英文
PHP手册
PHP手册 - N: Draws a line

用户评论:

GaryM at BinaryFarm dot com (24-Feb-2010 07:48)

<?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 > )
    {
       
$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";
}
?>

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 > )
    {
       
$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;
?>