PHP Conference Japan 2024

ImagickDraw::pathLineToRelative

(PECL imagick 2, PECL imagick 3)

ImagickDraw::pathLineToRelative繪製線條路徑

說明

public ImagickDraw::pathLineToRelative(float $x, float $y): bool
警告

此函式目前未文件化;僅提供其引數列表。

使用相對座標,從目前點繪製一條線條路徑到給定的座標。然後,該座標會變成新的目前點。

參數

x

起始 x 座標

y

起始 y 座標

回傳值

不會回傳任何值。

新增筆記

使用者貢獻筆記 1 則筆記

0
Axeia
15 年前
希望這對您有所幫助,我花了好一番功夫才繪製出一個簡單的扇形,在 GD2 中使用 'arc' 函式就可以輕鬆完成..在 imagick 中則稍微困難。

角度很混亂,看起來 path、arc 和 ellipse 函式都使用不同的系統..實在令人困惑。
下面的程式碼至少應該有助於了解其運作方式。

如需輸出的範例,請參閱
http://www.imagebam.com/image/8e0ca432393602
<?php
function getPointOnCircumference( $widthOfCircle, $heightOfCircle, $degrees, $x = 0, $y = 0 )
{
return array(
'x' => $x + ($widthOfCircle/2) * sin( deg2rad( $degrees ) ),
'y' => $y + ($heightOfCircle/2) * cos( deg2rad( $degrees ) )
);
}

$width = 200;
$height = 200;
$border = 2;
$x = $width / 2;
$y = $height / 2;
$im = new Imagick();
$im->newImage( $width, $height, "orange", "png" );


$draw = new ImagickDraw();
$draw->setFillColor( 'lime' );
$draw->setStrokeColor( new ImagickPixel( 'black' ) );
$draw->setStrokeWidth( 2 );
$draw->arc( 0, 0, ($width-$border), ($height-$border), 270, 360 ); //270 到 360 度
$im->DrawImage( $draw );

$draw2 = new ImagickDraw();
$draw2->setFillColor( 'red' );
$draw2->setStrokeColor( new ImagickPixel( 'black' ) );
$draw2->setStrokeWidth( 2 );
$draw2->ellipse( 100, 100, $x-$border, $y-$border, 0, 90 ); //0 到 90 度
$im->DrawImage( $draw2 );

$draw3 = new ImagickDraw();
$draw3->setFillColor( 'navy' );
$draw3->setStrokeColor( new ImagickPixel( 'white' ) );
$draw3->setStrokeWidth( 2 );
$draw3->pathStart();
$degrees90 = getPointOnCircumference( $width-2*$border,$height-2*$border, 360 );
$degrees180 = getPointOnCircumference( $width-2*$border,$height-2*$border, 270 );
$draw3->pathMoveToRelative( $x, $y ); //將「筆」移動到影像中間。
$draw3->pathLineToRelative( $degrees90['x'], $degrees90['y'] );
$draw3->pathEllipticArcRelative( $width-$border, $height-$border, 0, false, true, $degrees180['x'], $degrees180['y']-$y+$border );
$draw3->pathClose();
$im->DrawImage( $draw3 );

header( "Content-Type: image/png" );
echo
$im;
?>
To Top