CakeFest 2024: The Official CakePHP Conference

ImagickDraw::arc

(PECL imagick 2, PECL imagick 3)

ImagickDraw::arcBir yay çizer

Açıklama

public ImagickDraw::arc(
    float $sx,
    float $sy,
    float $ex,
    float $ey,
    float $sd,
    float $ed
): bool
Uyarı

Bu işlev hala belgelendirilmemiştir; sadece bağımsız değişken listesi mevcuttur.

Görüntü üzerinde belirtilen çerçeveye başlangıç ve bitiş açıları verilen yayı çizer.

Bağımsız Değişkenler

sx

Çerçevenin sol üst köşesinin X konumu.

sy

Çerçevenin sol üst köşesinin Y konumu.

ex

Çerçevenin sağ alt köşesinin X konumu.

ey

Çerçevenin sağ alt köşesinin Y konumu.

sd

Yayın başlangıç açısı.

ed

Yayın bitiş açısı.

Dönen Değerler

Hiçbir değer dönmez.

Örnekler

Örnek 1 - ImagickDraw::arc() örneği

<?php
function arc($strokeColor, $fillColor, $backgroundColor, $startX, $startY, $endX, $endY, $startAngle, $endAngle) {

// İçine çizmek için bir ImagickDraw nesnesi oluştur
$draw = new \ImagickDraw();
$draw->setStrokeWidth(1);
$draw->setStrokeColor($strokeColor);
$draw->setFillColor($fillColor);
$draw->setStrokeWidth(2);

$draw->arc($startX, $startY, $endX, $endY, $startAngle, $endAngle);

// Çizim komutlarının işlenebileceği bir görüntü nesnesi oluştur
$image = new \Imagick();
$image->newImage(IMAGE_WIDTH, IMAGE_HEIGHT, $backgroundColor);
$image->setImageFormat("png");

// ImagickDraw nesnesindeki çizim komutlarını görüntüye işle.
$image->drawImage($draw);

// Görüntüyü tarayıcıya gönder
header("Content-Type: image/png");
echo
$image->getImageBlob();
}

?>

add a note

User Contributed Notes 1 note

up
1
skmanji at manji dot org
12 years ago
You can do a pie chart with a combination of arc and polygon functions (there really ought to be a built-in command for this)

<?php
// create a new canvas object and a white image
$canvas = new Imagick();
$canvas->newImage(600, 600, 'grey');

image_pie($canvas, 300, 300, 200, 0, 45, 'red');
image_pie($canvas, 300, 300, 200, 45, 125, 'green');
image_pie($canvas, 300, 300, 200, 125, 225, 'blue');
image_pie($canvas, 300, 300, 200, 225, 300, 'cyan');
image_pie($canvas, 300, 300, 200, 300, 360, 'orange');

// output the image
$canvas->setImageFormat('png');
header("Content-Type: image/png");
echo
$canvas;
exit;

// FUNCTIONS

function image_arc( &$canvas, $sx, $sy, $ex, $ey, $sd, $ed, $color = 'black' ) {

// draw arc on canvas
// $sx, $sy, $ex, $ey specify a bounding rectangle of a circle with the origin in the middle
// $sd, and $ed specify start and end angles in degrees

$draw = new ImagickDraw();
$draw->setFillColor($color);
$draw->setStrokeColor($color);
$draw->setStrokeWidth(1);
$draw->arc($sx, $sy, $ex, $ey, $sd, $ed);
$canvas->drawImage($draw);
}

function
image_pie( &$canvas, $ox, $oy, $radius, $sd, $ed, $color = 'black' ) {

// draw pie segment
// $ox, $oy specify the circle origin
// $sd, and $ed specify start and end angles in degrees
// degrees start from 0 = East, and go clockwise

// position 1 - convert degrees to radians and get first point on perimeter of circle
$x1 = $radius * cos($sd / 180 * 3.1416);
$y1 = $radius * sin($sd / 180 * 3.1416);

// position 2 - convert degrees to radians and get second point on perimeter of circle
$x2 = $radius * cos($ed / 180 * 3.1416);
$y2 = $radius * sin($ed / 180 * 3.1416);

// draw segment triangle - specify the 3 points and draw a polygon
$points = array(array('x' => $ox, 'y' => $oy), array('x' => $ox + $x1, 'y' => $oy + $y1), array('x' => $ox + $x2, 'y' => $oy + $y2));

image_polygon($canvas, $points, $color);

// draw corrsesponding arc to complete the "pie" segment
image_arc($canvas, $ox - $radius, $oy - $radius, $ox + $radius, $oy + $radius, $sd, $ed, $color);
}

function
image_polygon( &$canvas, $points, $color = 'black' ) {

// draw a polygon on canvas

$draw = new ImagickDraw();
$draw->setFillColor($color);
$draw->setStrokeColor($color);
$draw->setStrokeWidth(1);
$draw->polygon($points);
$canvas->drawImage($draw);
}

?>
To Top