note 65982 added to function.pdf-shading
| From: | MikeZmuda at osu1 dot php dot net | Date: | Thu, 11 May 2006 11:22:45 +0000 |
| Subject: | note 65982 added to function.pdf-shading | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-111121@lists.php.net to get a copy of this message | ||
<?php
//Here be the circle code... Arrrrr
//Notes:
// The shading command can create a simple shaded
// circle, a donut (mmmmm.... donuts....,) or a circle
// with a hi-lite (aka offset shade.)
//
// A simple circle is just two circles with the same origin,
// in which one has a radius of x, and the other has a
// radius of 0.
//
// A donut is a circle with two circles with the same
// origin, in which one has a radius of x, and the
// other has a radius of y (presumably, non-zero.)
//
// A hi-lit circle is more like a sphere in that is has an
// area (presumably a highlight,) which is off-center.
//Standard php5 init routines.
// NOTE: For php4, do pdf_[commandname]($p,.....)
// - example: PDF_set_info($p,"Title", "Moe");
$p = new PDFlib();
if ($p->begin_document("", "") == 0) {
die("Error: " . $p->get_errmsg());
}
$p->set_info("Creator", "Homer");
$p->set_info("Author", "Lisa");
$p->set_info("Title", "Simpsons Circle");
$p->begin_page_ext(612, 792, ""); // This is letter.
//Smart idea to set up clipping:
$p->save();
//Set up clipping rectangle at pos (100,100) with wid/hei=100.
$p->rect(100,600,100,100);
//Designate it a CLIPPING rectangle.
$p->clip();
//Simple shaded circle
// radial = circular. (axial = linear)
// Origin of first circle = 150,650
// Origin of second circle = 150,650
// Hilite color = 1 (full on in a grayscale image = white.)
// 0,0,0 = the rest of the color pallatte.
// options: "r0=50 r1=0":
// Radius of circle "0" = 50.
// Radius of circle "1" = 0. (in other words, not a donut!)
$shading=$p->shading("radial", 150, 650, 150, 650, 1, 0, 0, 0, "r0=50 r1=0");
//This command actually does the shading.
$p->shfill($shading);
//Restore after saving...
$p->restore();
//Simple, non-offset (aka "funky") donut. (mmmmmm....)
// Again, set up clipping rect.
$p->save();
// This time at pos 300, 600 with width & height at 100 ea.
$p->rect(300,600,100,100);
$p->clip();
//Le Donut
// radial = circular
// Origin of first circle = 350,650
// Origin of second circle = 350,650
// Hilite color = 1 (white)
// 0,0,0 = the rest of the color pallatte.
// options: "r0=50 r1=25":
// Radius of circle "0" = 50.
// Radius of circle "1" = 25. (in other words, a donut!)
$shading=$p->shading("radial", 350, 650, 350, 650, 1, 0, 0, 0, "r0=50
r1=25");
$p->shfill($shading);
$p->restore();
//And finally, the hilight sphere / orb of death... whatever.
// Again, set up clipping rect...
$p->save();
$p->rect(500,600,100,100);
$p->clip();
//Simple shaded circle
// radial = circular.
// Origin of first circle = 550,650
// Origin of second circle = 575,675
// Hilite color = 1
// 0,0,0 = the rest of the color pallatte.
// options: "r0=50 r1=0":
// Radius of circle "0" = 50.
// Radius of circle "1" = 0. (a solid)
$shading=$p->shading("radial", 550, 650, 575, 675, 1, 0, 0, 0, "r0=50 r1=0");
$p->shfill($shading);
$p->restore();
//Send the end-of-page routines.
$p->end_page_ext("");
$p->end_document("");
$buf = $p->get_buffer();
$len = strlen($buf);
header("Content-type: application/pdf");
header("Content-Length: $len");
header("Content-Disposition: inline; filename=CircTest.pdf");
print $buf;
?>
----
Server IP: 216.194.113.175
Probable Submitter: 69.123.232.125
----
X-Spam-Status: No, hits=3.1 required=5.0 tests=DATE_MISSING,FROM_NO_LOWER
autolearn=no version=2.64
----
Manual Page -- http://www.php.net/manual/en/function.pdf-shading.php
Edit -- http://master.php.net/note/edit/65982
Del: integrated -- http://master.php.net/note/delete/65982/integrated
Del: useless -- http://master.php.net/note/delete/65982/useless
Del: bad code -- http://master.php.net/note/delete/65982/bad+code
Del: spam -- http://master.php.net/note/delete/65982/spam
Del: non-english -- http://master.php.net/note/delete/65982/non-english
Del: in docs -- http://master.php.net/note/delete/65982/in+docs
Del: other reasons-- http://master.php.net/note/delete/65982
Reject -- http://master.php.net/note/reject/65982
Search -- http://master.php.net/manage/user-notes.php