• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • PDF_curveto()

    (PHP 4, PECL pdflib >= 1.0.0)

    Draw Bezier curve

    说明

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

    Draws a Bezier curve from the current point, using 3 more control points.成功时返回TRUE,或者在失败时返回FALSE

    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);
    }
    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);
    }