Skip to content

Instantly share code, notes, and snippets.

@martoo6
Created May 27, 2016 21:48
Show Gist options
  • Save martoo6/5cd953390484cd914adcf17771fe9476 to your computer and use it in GitHub Desktop.
Save martoo6/5cd953390484cd914adcf17771fe9476 to your computer and use it in GitHub Desktop.
Processing Fooling Around
float seed = second();
Integer figures = 60;
void setup(){
size(1280,720, P3D);
stroke(255, 20);
blendMode(ADD);
noFill();
smooth(4);
/*for(Integer r:rules){
if(r==0) print("F");
if(r==1) print("+");
if(r==-1) print("-");
}*/
}
void draw(){
if(frameCount%figures==0) background(0);
ArrayList<Integer> rules = rec(5);
PVector pos = new PVector(random(width), random(height));
PVector dir = new PVector(3,0);
beginShape();
for(Integer r:rules){
if(r==0) pos.add(dir);
if(r!=0) dir.rotate(-r*PI/noise(seed)*5+3);
vertex(pos.x, pos.y);
}
endShape();
if(frameCount%figures==0){
saveFrame(minute()+"#####.png");
}
seed = millis()*0.01;
}
ArrayList<Integer> rec(Integer n){
ArrayList<Integer> res = new ArrayList<Integer>();
res.add(0);
for(int i=0;i<n;i++){
ArrayList<Integer> tmp = new ArrayList<Integer>();
for(Integer r:res){
tmp.addAll(f3(r));
}
res = new ArrayList<Integer>();
res.addAll(tmp);
}
return res;
}
ArrayList<Integer> f3(Integer i){
ArrayList<Integer> ret = new ArrayList<Integer>();
if(i==0) {
for(int e=0;e<noise(seed)*4+8;e++) ret.add(round(noise(seed, e)*2-1));
}else{
ret.add(i);
}
return ret;
}
ArrayList<Integer> f2(Integer i){
ArrayList<Integer> ret = new ArrayList<Integer>();
if(i==0) {
ret.add(0);
ret.add(1);
ret.add(0);
ret.add(1);
ret.add(0);
ret.add(-1);
ret.add(0);
ret.add(-1);
ret.add(0);
ret.add(1);
ret.add(0);
ret.add(1);
ret.add(0);
}else{
ret.add(i);
}
return ret;
}
ArrayList<Integer> f(Integer i){
ArrayList<Integer> ret = new ArrayList<Integer>();
if(i==0) {
ret.add(0);
ret.add(1);
ret.add(0);
ret.add(-1);
ret.add(0);
ret.add(-1);
ret.add(0);
ret.add(1);
ret.add(0);
}else{
ret.add(i);
}
return ret;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment