topical media & game development

talk show tell print

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.