diff --git a/java/libraries/svg/examples/NoScreenDisplay/NoScreenDisplay.pde b/java/libraries/svg/examples/NoScreenDisplay/NoScreenDisplay.pde new file mode 100644 index 0000000000..a95031f46f --- /dev/null +++ b/java/libraries/svg/examples/NoScreenDisplay/NoScreenDisplay.pde @@ -0,0 +1,23 @@ +/** + * SVG Export (No Screen Display) + * + * This example draws a single frame to a SVG file and quits. + * (Note that no display window will open; this helps when you're + * trying to create massive SVG images that are far larger than + * the screen size.) + */ + +import processing.svg.*; + +void setup() { + size(400, 400, SVG, "filename.svg"); +} + +void draw() { + // Draw something good here + line(0, 0, width/2, height); + + // Exit the program + println("Finished."); + exit(); +} diff --git a/java/libraries/svg/examples/SingleFrameFromAnimation/SingleFrameFromAnimation.pde b/java/libraries/svg/examples/SingleFrameFromAnimation/SingleFrameFromAnimation.pde new file mode 100644 index 0000000000..d3c2d90176 --- /dev/null +++ b/java/libraries/svg/examples/SingleFrameFromAnimation/SingleFrameFromAnimation.pde @@ -0,0 +1,36 @@ +/** + * Single Frame from an Animation (With Screen Display) + * + * It's also possible to save one frame from a program with + * moving elements. Create a boolean variable to turn the SVG + * recording process on and off. + */ + +import processing.svg.*; + +boolean record; + +void setup() { + size(400, 400); +} + +void draw() { + if (record) { + // Note that #### will be replaced with the frame number. Fancy! + beginRecord(SVG, "frame-####.svg"); + } + + // Draw something good here + background(255); + line(mouseX, mouseY, width/2, height/2); + + if (record) { + endRecord(); + record = false; + } +} + +// Use a mouse press so thousands of files aren't created +void mousePressed() { + record = true; +} diff --git a/java/libraries/svg/examples/ThreeDGeometry/ThreeDGeometry.pde b/java/libraries/svg/examples/ThreeDGeometry/ThreeDGeometry.pde new file mode 100644 index 0000000000..ce7d448d23 --- /dev/null +++ b/java/libraries/svg/examples/ThreeDGeometry/ThreeDGeometry.pde @@ -0,0 +1,49 @@ +/** + * SVG Files from 3D Geometry (With Screen Display) + * + * To create vectors from 3D data, use the beginRaw() and + * endRaw() commands. These commands will grab the shape data + * just before it is rendered to the screen. At this stage, + * your entire scene is nothing but a long list of lines and + * triangles. This means that a shape created with sphere() + * method will be made up of hundreds of triangles, rather + * than a single object. + * + * When using beginRaw() and endRaw(), it's possible to write + * to either a 2D or 3D renderer. For instance, beginRaw() + * with the SVG library will write the geometry as flattened + * triangles and lines. + */ + +import processing.svg.*; + +boolean record; + +void setup() { + size(500, 500, P3D); +} + +void draw() { + if (record) { + beginRaw(SVG, "output.svg"); + } + + // Do all your drawing here + background(204); + translate(width/2, height/2, -200); + rotateZ(0.2); + rotateY(mouseX/500.0); + box(200); + + if (record) { + endRaw(); + record = false; + } +} + +// Hit 'r' to record a single frame +void keyPressed() { + if (key == 'r') { + record = true; + } +} diff --git a/java/libraries/svg/examples/UsingCreateGraphics/UsingCreateGraphics.pde b/java/libraries/svg/examples/UsingCreateGraphics/UsingCreateGraphics.pde new file mode 100644 index 0000000000..ad7cf8377e --- /dev/null +++ b/java/libraries/svg/examples/UsingCreateGraphics/UsingCreateGraphics.pde @@ -0,0 +1,17 @@ +/** + * Using createGraphics() to Create an SVG File + * + * To write a SVG file using only the createGraphics() command, + * rather than as part of a sketch, it's necessary to call + * dispose() on the PGraphicsSVG object. This is the same as + * calling exit(), but it won't quit the sketch. + */ + +import processing.svg.*; + +PGraphics svg = createGraphics(300, 300, SVG, "output.svg"); +svg.beginDraw(); +svg.background(128, 0, 0); +svg.line(50, 50, 250, 250); +svg.dispose(); +svg.endDraw(); diff --git a/java/libraries/svg/examples/WithScreenDisplay/WithScreenDisplay.pde b/java/libraries/svg/examples/WithScreenDisplay/WithScreenDisplay.pde new file mode 100644 index 0000000000..6f22b2f03c --- /dev/null +++ b/java/libraries/svg/examples/WithScreenDisplay/WithScreenDisplay.pde @@ -0,0 +1,24 @@ +/** + * SVG Export (With Screen Display) + * + * To draw to the screen while also saving an SVG, use the + * beginRecord() and endRecord() functions. Unlike the PDF + * renderer, the SVG renderer will only save the final frame + * of a sequence. This is slower, but is useful when you need + * to see what you're working on as it saves. + */ + +import processing.svg.*; + +void setup() { + size(400, 400); + noLoop(); + beginRecord(SVG, "filename.svg"); +} + +void draw() { + // Draw something good here + line(0, 0, width/2, height); + + endRecord(); +}