pdf_curveto

(PHP 3 >= 3.0.6, PHP 4, PECL)

pdf_curveto -- Draws a curve

Description

bool pdf_curveto ( resource pdfdoc, float x1, float y1, float x2, float y2, float x3, float y3 )

Draw a Bezier curve from the current point, using 3 more control points. 如果成功则返回 TRUE,失败则返回 FALSE


add a note add a note User Contributed Notes
rune at zedeler dot dk
10-Mar-2005 11:51
Rod's function does not work (the thing produced is not even symmetrical).
Here is one that produces a correct approximation to an ellipse:

function pdf_ellipse ($pdfobj,$x,$y,$width,$height) {
// Function to draw an ellipse inscribed in a rectangle
// described by lower left (x,y) with width and height.
  $fac = (4*sqrt(2)-4)/3;
  $dx = $width*(1-$fac)/2;
  $dy = $height*(1-$fac)/2;
  pdf_moveto($pdfobj, $x,$y+$height/2);
  pdf_curveto($pdfobj, $x,$y+$height-$dy, $x+$dx,$y+$height, $x+$width/2,$y+$height);
  pdf_curveto($pdfobj, $x+$width-$dx,$y+$height, $x+$width,$y+$height-$dy, $x+$width,$y+$height/2);
  pdf_curveto($pdfobj, $x+$width,$y+$dy, $x+$width-$dx,$y, $x+$width/2,$y);
  pdf_curveto($pdfobj, $x+$dx,$y, $x,$y+$dy, $x,$y+$height/2);
}
rod-php at thecomplex dot com
02-Oct-2002 01:15
function pdf_ellipse_inscribed ($pdfobj,$x,$y,$width,$height) {
// Function to draw an ellipse inscribed in a rectangle
// described by lower left (x,y) with width and height.
   pdf_moveto($pdfobj, $x,$y+$height/2);
   pdf_curveto($pdfobj, $x,$y+$height/2,$x,$y+$height,$x+$width/2,$y+$height);
   pdf_curveto($pdfobj, $x+$width/2,$y+$height,$x+$width,$y+$height,$x+$width,$y+$height/2);
   pdf_curveto($pdfobj, $x+$width,$y+$height/2,$x+$width,$y,$x+$width/2,$y);
   pdf_curveto($pdfobj, $x+$width/2,$y,$x,$y,$x,$y+$height/2);
}