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);
}
PDF_curveto
(PHP 4, PECL pdflib:1.0-2.1.3)
PDF_curveto — Draws a curve
Description
void pdf_curveto
( int $pdf document
, double $x1
, double $y1
, double $x2
, double $y2
, double $x3
, double $y3
)
The PDF_curveto() function draws a Bezier curve from the current point to the point (x3 , y3 ) using (x1 , y1 ) and (x2 , y2 ) as control points.
See also PDF_moveto(), PDF_lineto(), PDF_stroke().
PDF_curveto
rune at zedeler dot dk
10-Mar-2005 04:51
10-Mar-2005 04:51
rod-php at thecomplex dot com
01-Oct-2002 07:15
01-Oct-2002 07: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);
}
