topical media & game development
graphic-processing-learning-21-example-21-3-example-21-3.pde / pde
// Learning Processing
// Daniel Shiffman
// http://www.learningprocessing.com
// Example 21-3: Multiple frames into one PDF
import processing.pdf.*;
float x = 0;
float y = 0;
void setup() {
size(400, 400);
smooth();
beginRecord(PDF, "scribbler.pdf" );
// background() should be in setup().
// If background() is placed in draw() the PDF would accumulate a lot of graphics elements only to erase them over and over again.
background(255);
}
void draw() {
// Pick a new x and y
float newx = constrain(x + random( - 20,20),0,width);
float newy = constrain(y + random( - 20,20),0,height);
// Draw a line from x,y to the newx,newy
stroke(frameCount%255,frameCount*3%255,frameCount*11%255,100);
strokeWeight(4);
line(x,y,newx,newy);
// Save newx, newy in x,y
x = newx;
y = newy;
}
// When the mouse is pressed, we finish the PDF
void mousePressed() {
// In this example, the user chooses when to finish rendering the PDF by clicking the mouse.
endRecord();
// We can also tell Processing to open the PDF
open(sketchPath( "scribbler.pdf" ));
noLoop();
}
(C) Æliens
20/2/2008
You may not copy or print any of this material without explicit permission of the author or the publisher.
In case of other copyright issues, contact the author.