# ImagickDraw::bezier

(PECL imagick 2, PECL imagick 3)

ImagickDraw::bezierDibuja una curva de Bézier

### Descripción

public ImagickDraw::bezier(array `\$coordinates`): bool

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Dibuja una curva de Bézier a través de un conjunto de puntos en la imagen.

### Parámetros

`coordinates`

Array multidimensional como array( array( 'x' => 1, 'y' => 2 ), array( 'x' => 3, 'y' => 4 ) )

### Valores devueltos

No devuelve ningún valor.

### Ejemplos

Ejemplo #1 Ejemplo de ImagickDraw::bezier()

``` <?phpfunction bezier(\$strokeColor, \$fillColor, \$backgroundColor) { \$draw = new \ImagickDraw(); \$strokeColor = new \ImagickPixel(\$strokeColor); \$fillColor = new \ImagickPixel(\$fillColor); \$draw->setStrokeOpacity(1); \$draw->setStrokeColor(\$strokeColor); \$draw->setFillColor(\$fillColor); \$draw->setStrokeWidth(2); \$smoothPointsSet = [ [ ['x' => 10.0 * 5, 'y' => 10.0 * 5], ['x' => 30.0 * 5, 'y' => 90.0 * 5], ['x' => 25.0 * 5, 'y' => 10.0 * 5], ['x' => 50.0 * 5, 'y' => 50.0 * 5], ], [ ['x' => 50.0 * 5, 'y' => 50.0 * 5], ['x' => 75.0 * 5, 'y' => 90.0 * 5], ['x' => 70.0 * 5, 'y' => 10.0 * 5], ['x' => 90.0 * 5, 'y' => 40.0 * 5], ], ]; foreach (\$smoothPointsSet as \$points) { \$draw->bezier(\$points); } \$disjointPoints = [ [ ['x' => 10 * 5, 'y' => 10 * 5], ['x' => 30 * 5, 'y' => 90 * 5], ['x' => 25 * 5, 'y' => 10 * 5], ['x' => 50 * 5, 'y' => 50 * 5], ], [ ['x' => 50 * 5, 'y' => 50 * 5], ['x' => 80 * 5, 'y' => 50 * 5], ['x' => 70 * 5, 'y' => 10 * 5], ['x' => 90 * 5, 'y' => 40 * 5], ] ]; \$draw->translate(0, 200); foreach (\$disjointPoints as \$points) { \$draw->bezier(\$points); } //Create an image object which the draw commands can be rendered into \$imagick = new \Imagick(); \$imagick->newImage(500, 500, \$backgroundColor); \$imagick->setImageFormat("png"); //Render the draw commands in the ImagickDraw object //into the image. \$imagick->drawImage(\$draw); //Send the image to the browser header("Content-Type: image/png"); echo \$imagick->getImageBlob();}?> ```

### User Contributed Notes 2 notes

SkepticaLee
9 years ago
``` This function requires at least 3 points. The following code fails when there are only two points left in the array:<?php\$im = new Imagick ();\$points = array (array ('x' => 10, 'y' => 10), array ('x' => 20, 'y' => 10), array ('x' => 30, 'y' => 40), array ('x' => 40, 'y' => 20), array ('x' => 50, 'y' => 60));\$n = 0;while (!empty (\$points)){    \$im->newImage (64, 64, "white");    \$draw = new ImagickDraw ();    \$draw->setFillColor ("none");    \$draw->setStrokeWidth (4);    \$draw->setStrokeColor ("black");    \$draw->setStrokeOpacity (0.9);    \$draw->setStrokeAntiAlias (true);    \$draw->bezier (\$points);    \$im->drawImage (\$draw);    \$im->writeImage ("IMG_\$n.png");    \$draw->destroy ();    \$im->destroy ();    echo count (\$points) . ", \$n: <img src=\"IMG_\$n.png\"><br>";    \$n++;    array_shift (\$points);}?> ```
zombiebovine at gmail dot com
13 years ago
``` How to use:<?php    \$width =  200;    \$height = 200;    \$border = 2;        \$img = new Imagick();    \$img->newImage( \$width, \$height, new ImagickPixel( 'transparent' ) );        \$draw = new ImagickDraw();    \$draw->setStrokeColor( new ImagickPixel( 'black' ) );    \$draw->setStrokeWidth( 2 );    \$draw->setFillColor( new ImagickPixel( 'transparent' ) );    // will fail in an obscure manner if the input data is invalid    \$points = array    (         array( 'x' => 0, 'y' => 200 ),         array( 'x' => 0, 'y' => 0 ),         array( 'x' => 200, 'y' => 200 ),         array( 'x' => 200, 'y' => 0 )    );        \$draw->bezier(\$points);                \$img->drawImage( \$draw );    \$img->setImageFormat( "png" );        header( "Content-Type: image/png" );    echo \$img;?> ```