Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 23 additions & 0 deletions java/libraries/svg/examples/NoScreenDisplay/NoScreenDisplay.pde
Original file line number Diff line number Diff line change
@@ -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();
}
Original file line number Diff line number Diff line change
@@ -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;
}
49 changes: 49 additions & 0 deletions java/libraries/svg/examples/ThreeDGeometry/ThreeDGeometry.pde
Original file line number Diff line number Diff line change
@@ -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;
}
}
Original file line number Diff line number Diff line change
@@ -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();
Original file line number Diff line number Diff line change
@@ -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();
}