Processing Typocraphy connected particles
2015-10-11 Typography Particles connected "Choose life" -_-
by schrodingers
HTML
<script src="https://cdnjs.cloudflare.com/ajax/libs/processing.js/1.4.13/processing.min.js"></script>
<canvas></canvas>
CSS
</style> <script type="text/javascript"> window.addEventListener('load', function() {
var scripts=document.body.getElementsByTagName('script');
var canvases=document.body.getElementsByTagName('canvas');
new Processing(canvases[0], scripts[0].text);
}
, false);
// Here prevent javascript in body from throwing error </script> <style>
JavaScript
/*
title: Typography Particles connected "Choose life" -_-
date: 2015-10-11
*/
//color[] clrs = {#47D0BD, #DAEC8B, #FFFDD6, #FF5DA2};
ArrayList <Point> points = new ArrayList <Point>();
int maxPoints = 400;
int lengthLimit = 20;
String word = "Choose life";
PGraphics pg;
void setup() {
size(800, 600);
colorMode(HSB, 360, 100, 100, 100);
blendMode(ADD);
setOffScreen();
initObjects();
}
void initObjects() {
points.clear();
for (int i = 0; i < maxPoints; i++) {
points.add(new Point());
}
}
void setOffScreen() {
pg = createGraphics(width, height);
pg.beginDraw();
pg.fill(0);
pg.textSize(100);
pg.textAlign(CENTER);
pg.text(word, random(pg.textWidth(word), pg.width - (pg.textWidth(word) * 2)), random(100, pg.height - 100));
pg.endDraw();
}
void draw() {
background(200, 99, 10);
for (Point p: points) {
p.update();
p.display();
}
for (int i = 0; i < points.size(); i++) {
Point a = points.get(i);
for (int j = i + 1; j < points.size(); j++) {
Point b = points.get(j);
float dist = PVector.dist(a.loc, b.loc);
if (dist < lengthLimit) {
strokeWeight(0.5);
stroke(a.col);
line(a.loc.x, a.loc.y, b.loc.x, b.loc.y);
}
}
}
}
void mousePressed() {
setOffScreen();
for (Point p: points) {
p.getTargetVelocity();
}
}
void keyPressed() {
if (keyCode == UP) {
maxPoints += 100;
initObjects();
}
if (keyCode == DOWN) {
maxPoints -= 100;
initObjects();
}
if (keyCode == RIGHT) lengthLimit += 5;
if (keyCode == LEFT) lengthLimit -= 5;
if (key == 's' || key == 'S') {
saveFrame("pic-##.png");
println("[" + hour() + ":" + minute() + "] " + "Picture saved.");
}
for (Point p: points) {
p.col = color(random(150, 250), 80, 40, random(80, 100));
...