(PHP 4, PECL pdflib >= 1.0.0)
PDF_curveto — Zeichnet Bézier-Kurve
Zeichnet eine Bézier-Kurve ausgehend von der aktuellen Position, wobei drei Kontrollpunkte benutzt werden. Gibt bei Erfolg TRUE zurück. Im Fehlerfall wird FALSE zurückgegeben.
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);
}
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);
}