Instructions:
- Mouse Drag
- Spacebar clears the screen.
- s to save an image (use open link to activate)
Silly code due to this tweet existing.
Image template taken from here.
license: mit | |
height: 960 |
Instructions:
Silly code due to this tweet existing.
Image template taken from here.
function setup() { | |
createCanvas(windowWidth, windowHeight); | |
let canvas = createCanvas(960, 540); | |
canvas.parent('canvasContainer'); | |
} | |
let c1, c2; | |
function draw() { | |
background(255); | |
noFill(); | |
strokeWeight(6); | |
c1 = random(0.5,0.35); | |
c2 = random(0.05, 0.2); | |
crack(0.2*height, 0.1 *height, c1*width, c2); | |
ground_up(0.2*height, 0.1 *height, c1*width, c2); | |
c1 = random(0.6,0.8); | |
c2 = random(0.05, 0.2); | |
crack(0.2*height, 0.1 *height, c1*width, c2); | |
ground_down(0.2*height, 0.1 *height, c1*width, c2); | |
c1 = random(0.2,0.35); | |
c2 = random(0.05, 0.2); | |
crack(0.47*height, 0.15*height, c1*width, c2); | |
ground_up(0.47*height, 0.15*height, c1*width, c2); | |
c1 = random(0.6,0.8); | |
c2 = random(0.05, 0.2); | |
crack(0.5*height, 0.18*height, c1*width, c2); | |
ground_down(0.5*height, 0.18*height, c1*width, c2); | |
c1 = random(0.5,0.65); | |
c2 = random(0.05, 0.2); | |
crack(0.75*height, 0.2*height, c1*width, c2); | |
ground_up(0.75*height, 0.2*height, c1*width, c2); | |
c1 = random(0.86,0.9); | |
c2 = random(0.01, 0.05); | |
crack(0.8*height, 0.22*height, c1*width, c2); | |
ground_down(0.8*height, 0.22*height, c1*width, c2); | |
noLoop(); | |
} | |
function crack( vpos, h, s, c2){ | |
noFill(); | |
for(let j=30; j>=0; j--){ | |
push(); | |
translate(0, j*5 ); | |
stroke( 220-j*4 +random(20)); | |
beginShape(); | |
curveVertex( 0, vpos); | |
curveVertex( 0, vpos); | |
curveVertex(s + c2 *width, vpos-0.2*h); | |
curveVertex(s - c2 *width, vpos-0.7*h); | |
curveVertex(width, vpos-h); | |
curveVertex(width, vpos-h); | |
endShape(); | |
pop(); | |
} | |
} | |
function ground_up( vpos, h, s, c2){ | |
fill(255); | |
noStroke(); | |
beginShape(); | |
curveVertex( 0, vpos); | |
curveVertex( 0, vpos); | |
curveVertex(s + c2 *width, vpos-0.2*h); | |
curveVertex(s - c2 *width, vpos-0.7*h); | |
curveVertex(width, vpos-h); | |
curveVertex(width, vpos-h); | |
curveVertex(width,vpos-h); | |
curveVertex(0,vpos-h); | |
curveVertex(0, vpos); | |
endShape(); | |
} | |
function ground_down( vpos, h, s, c2){ | |
fill(255); | |
noStroke(); | |
beginShape(); | |
curveVertex( 0, vpos); | |
curveVertex( 0, vpos); | |
curveVertex(s + c2 *width, vpos-0.2*h); | |
curveVertex(s - c2 *width, vpos-0.7*h); | |
curveVertex(width, vpos-h); | |
curveVertex(width, vpos-h); | |
curveVertex(width, height); | |
curveVertex(0, height); | |
curveVertex(0, vpos); | |
endShape(); | |
} | |
<head> | |
<script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.4.0/p5.js"></script> | |
<script language="javascript" type="text/javascript" src="z_purview_helper.js"></script> | |
<script language="javascript" type="text/javascript" src="dress.js"></script> | |
</head> | |
<body style="background-color:white"> | |
<div id="canvasContainer"></div><p> | |
<pre> | |
Instructions: | |
* Mouse Drag | |
* Spacebar clears the screen. | |
* s to save an image (use open link to activate) | |
</pre> | |
</body> |
// note: this file is poorly named - it can generally be ignored. | |
// helper functions below for supporting blocks/purview | |
function saveImage() { | |
// generate 960x500 preview.jpg of entire canvas | |
// TODO: should this be recycled? | |
var offscreenCanvas = document.createElement('canvas'); | |
offscreenCanvas.width = 960; | |
offscreenCanvas.height = 960; | |
var context = offscreenCanvas.getContext('2d'); | |
// background is flat white | |
context.fillStyle="#FFFFFF"; | |
context.fillRect(0, 0, 960, 960); | |
context.drawImage(this.canvas, 0, 0, 960, 960); | |
// save to browser | |
var downloadMime = 'image/octet-stream'; | |
var imageData = offscreenCanvas.toDataURL('image/jpeg'); | |
imageData = imageData.replace('image/jpeg', downloadMime); | |
p5.prototype.downloadFile(imageData, 'dress.jpg', 'jpg'); | |
} |