Biohazard warning sign with dimensions

Rupert Russell

Ballarat, Australia

  • Available
    Products
    68
  • Artist
    Notes
  • Artwork Comments 1

Apparel

Cases & Skins

Wall Art

Home Decor

Accessories

Stationery

Artist's Description

// Bio-hazard Warning Symbol v430
//January 14 2018
// Code by Rupert Russell
// rupert.russell1@gmail.com
// Released under Creative Commons Licence
// Licensed under Creative Commons Attribution-NonCommercial 4.0 International (CC BY-NC 4.0)
// https://creativecommons.org/licenses/by-nc/4.0/
// Based on the design https://cws.auburn.edu/shared/content/files/162...
// http://www.thelogofactory.com/the-biohazard-sym...
// https://books.google.com.au/books?id=spdxCwAAQB...
// https://books.google.com.au/books?id=spdxCwAAQB...
// https://books.google.com.au/books?id=spdxCwAAQB...
// https://acu-edu-primo.hosted.exlibrisgroup.com/...
// https://ia600302.us.archive.org/19/items/federa...
//https://archive.org/stream/federalregister39kun...

//https://99percentinvisible.org/article/biohazar...
int counter = 0;
boolean draw = true;
float aX = 0;
float aY = 0;
float a = 10; // Basic Unit size of Warning symbol (was 50)
float b = 3.5 * a;
float c = 4 * a;
float d = 6 * a;
float e = 11 * a;
float f = 15 * a;
float g = 21 * a;
float h = 30 * a;

float x1= 0;
float y1= 0;

float x2= 0;
float y2= 0;

float x3= 0;
float y3= 0;

PGraphics foreground;
PGraphics clearLines;
PGraphics arc;
PGraphics mask;
PGraphics combined;
void setup() {
size(800, 800);
int xWidth = 800;
int yHeight = 800;
foreground = createGraphics(xWidth, yHeight);
clearLines = createGraphics(xWidth, yHeight);
arc = createGraphics(xWidth, yHeight);
mask = createGraphics(xWidth, yHeight);
combined = createGraphics(xWidth, yHeight);
background(255, 255, 255);
// noLoop();
}
void draw() {

// Basic Unit A Markeres/*

strokeWeight(1);
stroke(255, 255, 0);
line(width/2 + a*5.00, height/2 – a*1.08, width/2 + a*aX, height/2 + a*aY);
*/

if (draw == true) {
drawBio();
draw = false;
// draw = true;
}
println("mouseX = " +mouseX);
println("mouseY = " +mouseY);

aX = (mouseX – width/2) /a;
aY = (mouseY – height / 2) /a;

println("mouse a X = " + aX);
println("mouse a Y = " + aY);
}

void drawBio() {

// initialise the combined layer There is noting in this layer except a white backgroud we will build this layer from the component layers below

combined.beginDraw();
combined.background(255);
combined.endDraw();
foreground.beginDraw();
foreground.noStroke();
// 3 Main Circles
foreground.pushMatrix(); // remember the current default screen settings
foreground.translate(width / 2, height / 2); // move the origin to the center of the screen
foreground.rotate(radians(90 – 90));
foreground.fill(255, 69, 0);
foreground.ellipse(0, 11 * a, a * 30, a * 30);
foreground.popMatrix(); // return to the default screen settings for rotation
foreground.pushMatrix(); // remember the current default screen settings
foreground.translate(width / 2, height / 2);
foreground.rotate(radians(210 – 90));
foreground.ellipse(0, 0 – 11 * a, a * 30, a * 30);
foreground.popMatrix(); // return to the default screen settings for rotation
foreground.pushMatrix(); // remember the current default screen settings
foreground.translate(width / 2, height / 2);
foreground.rotate(radians(330 – 90 ));
foreground.ellipse(0, 0 – 11 * a, a * 30, a * 30);
foreground.popMatrix(); // return to the default screen settings for rotation
foreground.endDraw();
// 3 inner white Circles
foreground.beginDraw();
foreground.pushMatrix(); // remember the current default screen settings
foreground.translate(width / 2, height / 2); // move the origin to the center of the screen
foreground.rotate(radians(90 – 90));
foreground.fill(255, 255, 255);
foreground.ellipse(0, -15 * a, a * 21, a * 21);
foreground.popMatrix(); // return to the default screen settings for rotation
foreground.pushMatrix(); // remember the current default screen settings
foreground.translate(width / 2, height / 2);
foreground.rotate(radians(210 – 90));
foreground.ellipse(0, 0 – 15 * a, a * 21, a * 21);
foreground.popMatrix(); // return to the default screen settings for rotation
foreground.translate(width / 2, height / 2);
foreground.rotate(radians(330 – 90 ));
foreground.ellipse(0, 0 – 15 * a, a * 21, a * 21);
// foreground.clear();// center white circle
foreground.noStroke();
foreground.fill(255);
foreground.ellipse(0, 0, a * 6, a * 6);
foreground.endDraw();
// clear lines -———————————————————

clearLines.smooth();
clearLines.beginDraw();
clearLines.fill(255, 255, 255);
clearLines.noStroke();
clearLines.pushMatrix();
clearLines.translate(width / 2, height / 2); // move the origin to the center of the screen
clearLines.rotate(radians(210 – 90 ));
clearLines.rect( 0.5 * a, – a * 5, a, a * 5);
clearLines.popMatrix();
clearLines.endDraw();
// End clear lines ———————————————————
// Arc ———————————————————
arc.beginDraw();
arc.fill(255, 69, 0);
arc.noStroke();
// first large orange circle
arc.ellipse(width / 2, height / 2, (e – a + b) * 2, (e – a + b) * 2);
// White inner circle
arc.fill(255);
arc.ellipse(width / 2, height / 2, (e – a) * 2, (e – a) * 2);
arc.endDraw();
// End Arc ———————————————————

// Magenta masks -—————————

mask.beginDraw();
mask.noStroke();
mask.fill(255, 0, 255);
mask.pushMatrix(); // remember the current default screen settings
mask.translate(width / 2, height / 2); // move the origin to the center of the screen
mask.rotate(radians(90 – 90));
mask.ellipse(0, 0 – f, (g – a*2), (g – a*2));
mask.popMatrix(); // return to the default screen settings for rotation
mask.pushMatrix(); // remember the current default screen settings
mask.translate(width / 2, height / 2);
mask.rotate(radians(210 – 90));
mask.ellipse(0, 0 – f, (g – a*2), (g – a*2));
mask.popMatrix(); // return to the default screen settings for rotation
mask.pushMatrix(); // remember the current default screen settings
mask.translate(width / 2, height / 2);
mask.rotate(radians(330 – 90 ));
mask.ellipse(0, 0 – f, (g – a*2), (g – a*2));
mask.popMatrix(); // return to the default screen settings for rotation
mask.endDraw();
// End Magenta masks -—————————//pixel array method for combining layers ********************************// build up the combined image from layers using masks
mask.loadPixels();
combined.loadPixels();
arc.loadPixels();
foreground.loadPixels();
// add the 3 arcs to the combined image
for (int p = 0; p <mask.width * mask.height; p++) {
if (mask.pixels[p]==#FF00FF) {
// Make White on PG1 transparent and “show” pg2 pixels through it.
combined.pixels[p]= arc.pixels[p]; //replace it with the new color
}
}
// add all non white pixels in the foreground to the combined image
for (int p = 0; p <foreground.width * foreground.height; p++) {
if (foreground.pixels[p] != #FFFFFF) {
combined.pixels[p]= foreground.pixels[p]; //replace it with the new color
}
}
mask.updatePixels();//then update the pixels
arc.updatePixels();//then update the pixels
combined.updatePixels();//then update the pixels

// * Draw 3 white gaps in the 3 main circles ==// Gap in the top circle *

combined.fill(255, 0, 255);

// Gap in top circle

combined.noSmooth();
combined.beginDraw();
combined.image(combined, 0, 0);
combined.noStroke();
combined.fill(255);
combined.rect(width /2 – c/2, height /2 – h + c /2, c, c);

// White gap in right hand lower circle

combined.pushMatrix(); // remember the current default screen settings
combined.translate(width / 2, height / 2);
combined.rotate(radians(210 – 90));
combined.stroke(255);
combined.fill(255);
combined.rect(- c/3, – h + c /3, c, c);
combined.popMatrix();

// White gap in left lower hand circle

combined.pushMatrix(); // remember the current default screen settings
combined.translate(width / 2, height / 2 );
combined.rotate(radians(330 – 90 ));
combined.stroke(255);
combined.fill(255);
combined.rect(- c/2, – h + c /3, c, c);
combined.popMatrix();
combined.endDraw();
combined.updatePixels();//then update the pixels
// End Draw 3 white gaps in the 3 main circles ==

// Draw 3 small white gaps attached to the inner most circle =// Gap in the top circle

combined.beginDraw();
combined.image(combined, 0, 0);
combined.noStroke();
combined.stroke(255);
combined.fill(255);
combined.rect(width /2 – a/2, height /2 – a * 6, a, a * 4);
// White gap in right hand lower circle
combined.pushMatrix(); // remember the current default screen settings
combined.translate(width / 2, height / 2 );
combined.stroke(0);
combined.popMatrix(); // restore the default screen settings
// right hand side line
combined.pushMatrix(); // remember the current default screen settings
// combined.translate(width / 2, height / 2 + a /2 );
combined.translate(width / 2, height / 2 );
combined.stroke(255);
combined.noStroke();
combined.rotate(radians(210 + 90));
combined.fill(255);
combined.rect(0 – a /2, 0 + a /2, a, a * 6);
combined.line(0, 0 + a /2, 100, 600);
combined.popMatrix();
// White gap in left lower hand circle
combined.pushMatrix(); // remember the current default screen settings
combined.translate(width / 2 – a, height / 2 );
combined.stroke(255);
combined.noStroke();
combined.rotate(radians(330 + 90));
combined.fill(255);
combined.rect(0, 0, a, a * 6);
combined.popMatrix();
combined.endDraw();
combined.updatePixels();//then update the pixels
// End Drawing 3 small white gaps attached to the inner most circle =// display the final results

background(255);
image(arc, 0, 0);
// save(“arc.png”);
background(255);
image(foreground, 0, 0);
// save(“foreground.png”);
background(255);
image(mask, 0, 0);
// save(“mask.png”);
background(255);
image(foreground, 0, 0);
image(mask, 0, 0);
// save(“mask+arcs.png”);
background(255);
image(combined, 0, 0);

// Adding Guidelines ==-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=// CL Text TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT

textSize(a*1.5);
fill(0);
textAlign(CENTER, CENTER);
text(“C”, width/2 -a*27.5, height/2 – a*.7);
text(“L”, width/2 -a*27.1, height/2 – a*.1);

text(“C”, width/2 +a*35.5, height/2 – a*.7);
text(“L”, width/2 +a*35.8, height/2 – a*.1);

// CL for lower Vertical Center line

text(“C”, width/2, height/2 + a*27.1);
text(“L”, width/2 +a*.3, height/2 + a*27.7);

text(“BASIC”, width/2 + a*5.5, height/2 – a*4.7);
text(“UNIT”, width/2 + a*5.5, height/2 – a*3.4);
text(“A”, width/2 + a*5.1, height/2 – a*2);

text(“A”, width/2 + a*7.4, height/2 + a*9.2); // for A on ARC

text(“C”, width/2, height/2 – a*22.9); // CCC
text(“D”, width/2, height/2 – a*6.9); // DDD
text(“E”, width/2 + a*26, height/2 – a*11 /2); // EEE

// end Test TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT

stroke(0);
strokeWeight(2);
// Center Dash
line(width/2 – a, height/2, width/2 + a, height/2);
line(width/2, height/2 – a, width/2, height/2 + a);

//Horozontal Center Line CL

stroke(255, 0, 255);
line(width/2 – a*2, height/2, width/2 – a*15.6, height/2); //1
line(width/2 + a*2, height/2, width/2 + a*15.6, height/2);

line(width/2 – a*16.6, height/2, width/2 – a*17.6, height/2); //3.1
line(width/2 + a*16.6, height/2, width/2 + a*17.6, height/2); // 0.5

line(width/2 – a*18.6, height/2, width/2 – a*26.5, height/2); //
line(width/2 + a*18.6, height/2, width/2 + a*28, height/2); //

// Guides for C CCC

line(width/2 + 2*a, height/2 – a*22.5 – 1.5*a, width / 2 + 2*a, height/2 – a*22.5 + 1.5*a); // Right of C
line(width/2 – 2*a, height/2 – a*22.5 – 1.5*a, width / 2 – 2*a, height/2 – a*22.5 + 1.5*a); // Left of C

// Guides for E EEE

line(width/2 + 2*a, height/2 – a*11, width/2 + 28*a, height/2 – a*11); //28 wide

line(width/2 + 26*a, height/2 – a*0.5, width/2 + 26*a, height/2 – a*4.0 ); //4.3 high
line(width/2 + 26*a, height/2 – a*6.5, width/2 + 26*a, height/2 – a*10.5); //28 high

// Cross hair for top of E 2a long

line(width/2 – a, height/2 – a*11, width/2 + a, height/2 – a*11); //2

// Default Arrow Translated to top of E EEE

pushMatrix();
translate(width / 2, height / 2 );
fill(0);
rotate(radians(90));

translate(a*-12, a*-26.8 );
noStroke();
x1= a;
y1= a*0.75;

x2= a*2;
y2= a*1.00; // 0.25

x3= a*2;
y3= a*.5; // 0.25

triangle(x1, y1, x2, y2, x3, y3);
popMatrix();

// Default Arrow Translated to bottom of E EEE

pushMatrix();
translate(width / 2, height / 2 );
fill(0);
rotate(radians(90+180));

translate(a*-1, a*25.3 );
noStroke();
x1= a;
y1= a*0.75;

x2= a*2;
y2= a*1.00; // 0.25

x3= a*2;
y3= a*.5; // 0.25

triangle(x1, y1, x2, y2, x3, y3);
popMatrix();

// End Guides for EEE -————————————————————-/*// Start Guides for FFF -———————————————————-// Cross hair for top of F FFF

line(width/2 – a, height/2 – a*15, width/2 + a, height/2 – a*15); //2

// Guides for E EEE

line(width/2 + 2*a, height/2 – a*15, width/2 + 28*a, height/2 – a*15); //28 wide

line(width/2 + 26*a, height/2 – a*0.5, width/2 + 26*a, height/2 – a*4.0 ); //4.3 high
line(width/2 + 26*a, height/2 – a*6.5, width/2 + 26*a, height/2 – a*10.5); //28 high

// Cross hair for top of E 2a long

line(width/2 – a, height/2 – a*15, width/2 + a, height/2 – a*15); //2

// Default Arrow Translated to top of F FFF

pushMatrix();
translate(width / 2, height / 2 );
fill(0);
rotate(radians(90));

translate(a*-12, a*-26.8 );
noStroke();
x1= a;
y1= a*0.75;

x2= a*2;
y2= a*1.00; // 0.25

x3= a*2;
y3= a*.5; // 0.25

triangle(x1, y1, x2, y2, x3, y3);
popMatrix();

// Default Arrow Translated to bottom of F FFF

pushMatrix();
translate(width / 2, height / 2 );
fill(0);
rotate(radians(90+180));

translate(a*-1, a*25.3 );
noStroke();
x1= a;
y1= a*0.75;

x2= a*2;
y2= a*1.00; // 0.25

x3= a*2;
y3= a*.5; // 0.25

triangle(x1, y1, x2, y2, x3, y3);
popMatrix();

// End Guides for FFF -————————————————————-*/// Vertical Center Line CL// line(width/2, 0,width / 2, height);

stroke(0, 255, 0);
line(width/2, height/2 – a*2, width / 2, height/2 – a*5.9); //1.0
line(width/2, height/2 + a*2, width / 2, height/2 + a*10.2); //1.7

stroke(0, 0, 0);
line(width/2, height/2 – a*7.8, width / 2, height/2 – a*9.5); // 2a long

line(width/2, height/2 – a*10.5, width / 2, height/2 – a*13); //
line(width/2, height/2 – a*14, width / 2, height/2 – a*16); //
line(width/2, height/2 – a*16.5, width / 2, height/2 – a*18.5); //
line(width/2, height/2 – a*19, width / 2, height/2 – a*21.7); // 2.7 Below C

line(width/2, height/2 – a*24, width / 2, height/2 – a*28); // 2.7 Below C
stroke(0);

// continuation of lower Vertical Center Line// stroke(255, 255, 0);

line(width/2, height/2 + a*11.2, width / 2, height/2 + a*12.2); // 1 with a .5 gap;
line(width/2, height/2 + a*13.2, width / 2, height/2 + a*18.5); // 3.5 with a .5 gap **

line(width/2, height/2 + a*19.5, width / 2, height/2 + a*20.5); // 1 with a .5 gap
line(width/2, height/2 + a*21.5, width / 2, height/2 + a*26.0); // 6 with a .5 gap
stroke(0);
// Guides for D DDD
line(width/2 – a*3.05, height/2, width / 2 – a*3.05, height/2 – a*7.5); //
line(width/2 + a*3.05, height/2, width / 2 + a*3.05, height/2 – a*7.5); //

// horizontal lines for D Arrows

line(width/2 – a*1.2, height/2 – a*6.75, width/2 – a*2.05, height/2 – a*6.75);
line(width/2 + a*1.2, height/2 – a*6.75, width/2 + a*2.05, height/2 – a*6.75);

// Left Arrows for C CCC

fill(0, 0, 0);
noStroke();

x1= width/2 – a*2;
y1= height/2 – a*22.7;

x2= width/2 – a*2 + a;
y2= height/2 – a*22.7 – a*0.25; // 0.25

x3= width/2 – a*2 + a;
y3= height/2 – a*22.7 + a*0.25; // 0.25

triangle(x1, y1, x2, y2, x3, y3);

// Right Arrows for C CCC

fill(0, 0, 0);

x1= width/2 + a*2;
y1= height/2 – a*22.7;

x2= width/2 + a*1;
y2= height/2 – a*22.7 + 0.25*a ; // 0.25

x3= width/2 + a*1;
y3= height/2 – a*22.7 -0.25*a ; // 0.25

triangle(x1, y1, x2, y2, x3, y3);

// Left Arrows for D DDD

fill(0);
noStroke();
x1= width/2 – a*3.05;
y1= height/2 – a*6.75;

x2= width/2 – a*3.05 + a;
y2= height/2 – a*7.00; // 0.25

x3= width/2 – a*3.05 + a;
y3= height/2 – a*6.5; // 0.25

triangle(x1, y1, x2, y2, x3, y3);

// Right Arrows for D

fill(0, 0, 0);

x1= width/2 + a*3.05;
y1= height/2 – a*6.75;

x2= width/2 + a*3.05 – a;
y2= height/2 – a*7.00;

x3= width/2 + a*3.05 – a;
y3= height/2 – a*6.5;

triangle(x1, y1, x2, y2, x3, y3);

// ==== Basic Unit A AAA Markeres =======

stroke(0);

pushMatrix();
translate(width / 2, height / 2 );
stroke(0);
strokeWeight(2);
rotate(radians(210 ));
line(-a*3.74, -a*3.5, -a*3.74, a*3.5 ); // was 3.7
popMatrix();

// White gap in right hand lower circle

pushMatrix();
translate(width / 2, height / 2 );
noStroke();
rotate(radians(210 + 90));
fill(255);
rect(0 – a /2, a + a /2, a, a *3 );
popMatrix();

// ==== End Basic Unit A Markeres =======// ==== Basic Unit A Markeres on arc =======// Default Arrow for Arc guide lines for Basic Unit A AAA Translated to top %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

pushMatrix();
translate(width / 2, height / 2 );
fill(0, 0, 0);
translate(a*2.95, a*10.75);
rotate(radians(-25));
noStroke();
x1= a*1;
y1= a*0.75;

x2= a*2;
y2= a*1.00; // 0.25

x3= a*2;
y3= a*0.5; // 0.25

triangle(x1, y1, x2, y2, x3, y3);
popMatrix();

// Default Arrow for Arc guide lines for Basic Unit A AAA Translated to bottom %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

pushMatrix();
translate(width / 2, height / 2 );
fill(0, 0, 0);
translate(a*4.9, a*10.0);
rotate(radians(-16));
noStroke();
x1= -a*2;
y1= a*0.75;

x2= -a*3;
y2= a*1.00; // 0.25

x3= -a*3;
y3= a*0.5; // 0.25

triangle(x1, y1, x2, y2, x3, y3);
popMatrix();

noFill();

// ellipse(width / 2, height / 2, 23.5*a, 23.5*a);// Arc guide lines for Basic Unit A

stroke(0, 0, 0);
strokeWeight(2);
arc(width / 2, height / 2, 23.5*a, 23.5*a, radians(56.5), radians(65));
stroke(0, 0, 0);
arc(width / 2, height / 2, 23.5*a, 23.5*a, radians(76), radians(88));

// Orange Rectangle below gap in right hand lower circle

pushMatrix();
translate(width / 2, height / 2 );
noStroke();
rotate(radians(210 + 90));
fill(255, 69, 0);
rect(-a*1, a*3, a 0.5, a1.2 );
popMatrix();

// Orange Rectangle above gap in right hand lower circle

pushMatrix();
translate(width / 2, height / 2 );
noStroke();
rotate(radians(210 + 90));
fill(255, 69, 0);
// fill(255, 0, 255);
rect(+a*.5, a*3, a 0.5, a1.2 );
popMatrix();

// Default Arrow Translated to top %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

pushMatrix();
translate(width / 2, height / 2 );
fill(0);
rotate(radians(210 + 90));

translate(a*-0.5, a*3 );
noStroke();
x1= a;
y1= a*0.75;

x2= a*2;
y2= a*1.00; // 0.25

x3= a*2;
y3= a*0.5; // 0.25

triangle(x1, y1, x2, y2, x3, y3);
popMatrix();

// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%// Default Arrow Translated to bottom %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

pushMatrix();
translate(width / 2, height / 2 );
fill(0);
rotate(radians(210 + 90 + 180));

translate(a*-0.5, a*-4.5 );
noStroke();
x1= a;
y1= a*0.75;

x2= a*2;
y2= a*1.00; // 0.25

x3= a*2;
y3= a*0.5; // 0.25

triangle(x1, y1, x2, y2, x3, y3);
popMatrix();

// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%// ==== End Basic Unit A AAA Markeres on arc =======// White gap in left hand lower circle

noStroke();
pushMatrix();
translate(width / 2, height / 2 );
rotate(radians(330 – 90));
noStroke();
fill(255, 255, 255);
rect(- c/2, – h + c/2, c, c);
popMatrix();

// White gap in right hand lower circle

pushMatrix();
translate(width / 2, height / 2);
rotate(radians(210 – 90));
noStroke();
fill(255);
rect(- c/2, – h + c/2, c, c);
popMatrix();

// Adding Guidelines// draw 330 degree line
`
`
`
`
`
`
`
````

stroke(0, 0, 0);
pushMatrix();
translate(width/2, height /2);
rotate(radians(330 + 180));
line(a*2, 0, a*15.6, 0); //1
line(a*16.6, 0, a*17.6, 0); //3.1
line(a*18.6, 0, a*26.5, 0); //
line(a*27.5, 0, a*28.5, 0); //
popMatrix();

// draw 210 degree line
`
`
`
`
`
`
`
````

pushMatrix();
translate(width/2, height /2);
rotate(radians(210 + 180));

line(a*2, 0, a*15.6, 0); //1
line(a*16.6, 0, a*17.6, 0); //3.1
line(a*18.6, 0, a*26.5, 0); //
line(a*27.5, 0, a*28.5, 0); //
popMatrix();
noFill();
stroke(0, 0, 0);
arc(width/2, height/2, 34.3*a, 34.3*a, radians(14), radians(209 – 180));

save(“combined-v430.png”);
// exit();
}

void keyPressed() {
if (key == ‘s’) {
// save(“normal-biohazard.png”);
noLoop();
//exit();
}
}

void saveHiRes(int scaleFactor) {
println(“starting to save high.res copy”);
PGraphics hires = createGraphics(width*scaleFactor, height*scaleFactor, JAVA2D);
beginRecord(hires);
hires.scale(scaleFactor);
draw();
endRecord();
hires.save(“hires-biohazard.png”);
println(“saved high.res copy”);
exit();
}

Artwork Comments

desktop tablet-landscape content-width tablet-portrait workstream-4-across phone-landscape phone-portrait
desktop tablet-landscape content-width tablet-portrait workstream-4-across phone-landscape phone-portrait