ConFoo: Call for paper is now Open

# PDF_curveto

(PHP 4, PECL pdflib >= 1.0.0)

PDF_curvetoベジエ曲線を描く

### 説明

bool PDF_curveto ( resource \$p , float \$x1 , float \$y1 , float \$x2 , float \$y2 , float \$x3 , float \$y3 )

3 つの制御点を使用して現在の点からベジエ曲線を描画します。 成功した場合に TRUE を、失敗した場合に FALSE を返します。

### User Contributed Notes 2 notes

rune at zedeler dot dk
9 years ago
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
11 years ago
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);
}