Skip to content

Instantly share code, notes, and snippets.

@Bleuje
Created November 16, 2017 18:07
Show Gist options
  • Select an option

  • Save Bleuje/75347b04a29bb8442fe88f2f5aed2ee1 to your computer and use it in GitHub Desktop.

Select an option

Save Bleuje/75347b04a29bb8442fe88f2f5aed2ee1 to your computer and use it in GitHub Desktop.

Revisions

  1. Bleuje created this gist Nov 16, 2017.
    83 changes: 83 additions & 0 deletions ryojiikeda.pde
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,83 @@
    OpenSimplexNoise noise;

    int numFrames = 100;

    int margin = 50;

    int m;

    class Line{
    float lr;
    float scl;
    float h;

    Line(float lr_,float scl_, float h_){
    lr = lr_;
    scl = scl_;
    h = h_;
    }
    }

    ArrayList<Line> lines = new ArrayList<Line>();


    void setup(){
    size(600,600);
    background(0);

    noise = new OpenSimplexNoise();

    float sumh = 0;
    while(true){
    float lr = 0.5*pow(random(0.5,2.0),2);
    float scl = 0.1*pow(random(0.4,2),2);
    float h = 100.0*pow(random(0.2,1),4.0);
    sumh += h;
    if(sumh>=height-2*margin){
    h -= sumh - (height-2*margin);
    lines.add(new Line(lr,scl,h));
    m++;
    break;
    }
    lines.add(new Line(lr,scl,h));
    m++;
    }

    println(m);
    }

    void draw(){
    blendMode(BLEND);
    background(15);

    float t = 1.0*(frameCount-1)%numFrames/numFrames;

    float sumh = 0;

    for(int j = 0;j<m;j++){
    for(int x = margin;x<width-margin;x++){
    float loop_radius = lines.get(j).lr;
    double ns = noise.eval(100*j+lines.get(j).scl*x,loop_radius*cos(TWO_PI*t),loop_radius*sin(TWO_PI*t));
    float col = constrain(map((float)ns,-0.05,0.05,0,255),0,255);
    stroke(col);
    line(x,margin+sumh,x,margin+lines.get(j).h+sumh);
    }
    sumh+=lines.get(j).h;
    }

    stroke(255);
    noFill();
    rect(margin,margin,width-2*margin,height-2*margin);

    blendMode(EXCLUSION);
    noStroke();
    fill(255);
    ellipse(width/2,height/2,0.7*width,0.7*width);

    if(frameCount<=numFrames){
    saveFrame("fr####.png");
    }
    if(frameCount==numFrames){
    println("finished");
    }
    }