The ImagickDraw::pathCurveToSmoothRelative() function is an inbuilt function in PHP which is used to draw a cubic Bezier curve from the current point to (x,y) using relative coordinates.
Syntax:
bool ImagickDraw::pathCurveToSmoothRelative( float $x2, float $y2, float $x, float $y )
Parameters: This function accepts four parameters as mentioned above and described below:
- $x2: It specifies the x-coordinate of the second control point.
- $y2: It specifies the y-coordinate of the second control point.
- $x: It specifies the x-coordinate of the ending point.
- $y: It specifies the y-coordinate of the ending point.
Return Value: This function returns TRUE on success.
Exceptions: This function throws ImagickException on error.
Below given programs illustrate the ImagickDraw::pathCurveToSmoothRelative() function in PHP:
Program 1:
<?php // Create a new imagick object $imagick = new Imagick();
// Create a image on imagick object $imagick ->newImage(800, 250, 'skyblue' );
// Create a new ImagickDraw object $draw = new ImagickDraw();
// Set the fill color $draw ->setFillColor( 'skyblue' );
// Set the stroke color $draw ->setStrokeColor( 'black' );
// Set the stroke width $draw ->setStrokeWidth(5);
// Draw a painting $draw ->pathStart();
$draw ->pathMoveToRelative(335, 70);
$draw ->pathCurveToSmoothRelative(50, -50, 60, 20);
$draw ->pathCurveToSmoothRelative(50, -50, 60, 20);
$draw ->pathMoveToRelative(50, 50);
$draw ->pathCurveToSmoothRelative(50, -50, 60, 20);
$draw ->pathCurveToSmoothRelative(50, -50, 60, 20);
$draw ->pathMoveToRelative(-500, 0);
$draw ->pathCurveToSmoothRelative(50, -50, 60, 20);
$draw ->pathCurveToSmoothRelative(50, -50, 60, 20);
$draw ->pathFinish();
// Set the fill color $draw ->setFillColor( 'yellow' );
// Draw a circle $draw ->circle(20, 20, 100, 20);
// Set the stroke width $draw ->setStrokeWidth(1);
// Set the fond size $draw ->setFontSize(40);
// Set the fill color $draw ->setFillColor( 'yellow' );
// Annotate the text $draw ->annotation(500, 40, 'Summer Vibes' );
// Render the draw commands $imagick ->drawImage( $draw );
// Show the output $imagick ->setImageFormat( 'png' );
header( "Content-Type: image/png" );
echo $imagick ->getImageBlob();
?> |
Output:
Program 2:
<?php // Create a new imagick object $imagick = new Imagick();
// Create a image on imagick object $imagick ->newImage(800, 250, 'cyan' );
// Create a new ImagickDraw object $draw = new ImagickDraw();
$draw ->setFillColor( 'purple' );
// Set the stroke color $draw ->setStrokeColor( 'blue' );
// Set the stroke width $draw ->setStrokeWidth(15);
// Draw curves to Quadratic Bezier Relative (with pathClose()) $draw ->pathStart();
$draw ->pathCurveToSmoothRelative(-200, 250, 1900, 1250);
$draw ->pathClose();
$draw ->pathFinish();
// Render the draw commands $imagick ->drawImage( $draw );
// Show the output $imagick ->setImageFormat( 'png' );
header( "Content-Type: image/png" );
echo $imagick ->getImageBlob();
?> |
Output:
Reference: https://www.php.net/manual/en/imagickdraw.pathcurvetosmoothrelative.php