-
Notifications
You must be signed in to change notification settings - Fork 0
/
sketch.js
executable file
·51 lines (40 loc) · 941 Bytes
/
sketch.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
//Setup
var WIDTH = window.innerWidth;
var HEIGHT = window.innerHeight;
var PARTICLES_NUM = 1000;
//Objects
var img;
var shrinker;
var splasher;
var imageCenter;
//Lists
var colors;
function preload(){
img = loadImage("images/7.jpg");
imageCenter = createVector(WIDTH/2, HEIGHT/2);
}
function setup(){
pixelDensity(1);
createCanvas(WIDTH, HEIGHT);
//Extract particle colors from image
var extractor = new Extractor();
var kernel_size = extractor.calculateKernelSize(img, PARTICLES_NUM);
colors = extractor.getColors(extractor.extractBoxes(img, kernel_size));
colors = shuffle(colors);
console.log(colors.length);
shrinker = new ImageShrinker(img, imageCenter.copy());
splasher = new Splasher(imageCenter.copy(), colors);
}
function draw(){
background(0);
shrinker.draw();
splasher.update();
splasher.draw();
}
function mouseClicked(){
if(shrinker){
shrinker.shrink(function(){
splasher.restart();
});
}
}