GMU:Algorithmic Art/Jonas Obertüfer/for computers

From Medien Wiki

blib blub.


Algorithm for Computers 1 — 02.11.18

Result Algorithm
incoming soon ok cool

Telefonbild

inspired by the idea of the "Telefonbilder" by Moholy-Nagy. See also under the "for humans" section.

Result Algorithm
JO Algo Telefonbild.jpg
void setup() {
  size(500,800);
  noStroke();
  background(212,212, 209);
}

void draw() {
  
  // big black vertical rectangle on the left
  fill(46,41,37);
  rect(116,0,102,800);
  
  // cross on the top right;
  // black rectangle
  rect(327,327,88,9);
  // yellow rect
  fill(206,187,95);
  rect(365,286,9,110);
  
  // red/yellow cross
  // red rectangle
  fill(160,57,60);
  rect(185,685,90,22);
  // yellow rectangle
  fill(206,187,95);
  rect(185,690,90,12);
  // red long vertical rectangle
  fill(160,57,60);
  rect(237,515,13,245);
  
}

Sweater Pattern

Result Algorithm
JO Algo Pullover Pattern.jpg

JO Algo Pullover Real.jpg

/*
Nested for loops practice
using: 
 - beginShape()
 - endshape()
 - strokeWeight(15.0) -> for thick fat lines
 - strokeJoin(MITER); -> for edgy line connections :)
 
this should be a reproduction of pattern on one of my sweaters
(-> See Picture on the left) but without the mirroring.
 
*/

int elementsPerSide = 10;
int gap = 50;

void setup(){
  size(550, 550);
  stroke(28,42,76);
}

void draw(){
  background(255);
    
  for(int i=1; i<=elementsPerSide; i++){
    for(int j=1; j<=elementsPerSide; j++){
      
      int xPos = i*gap;
      int yPos = j*gap;
      
      noFill();
      strokeWeight(15.0);
      strokeJoin(MITER);
      beginShape();
      vertex(xPos-25,yPos+25);
      vertex(xPos,yPos);
      vertex(xPos+25,yPos+25);
      endShape();
      
    }
  }
  
}

graue brühe

v1:

Result Algorithm
JO Algo grauebruehe 1.gif
ArrayList<Brush> brushes; 

void setup() {
  size(600,600);
  background(255);
  
  colorMode(HSB);
  brushes = new ArrayList<Brush>();
  
}

void draw() {
   
  for (Brush brush : brushes) {
    brush.paint();
  }
}

void mouseClicked() {
  brushes.add(new Brush());
}

class Brush {
  float angle;
  int components[];
  float x, y;
  color clr;

  Brush() {
    angle = random(TWO_PI);
    x = mouseX;
    y = mouseY;
    clr = color(0, 0, random(100), 5);
    components = new int[4];
    for (int i = 0; i < 4; i++) {
      components[i] = int(random(1, 4));
    }
  }

  void paint() {
    float a = 0;
    float r = 0;
    float x1 = x;
    float y1 = y;
    float u = random(0.5, 1);
    

    fill(clr);
    noStroke();    
    
    ellipse(x, y, random(50,150), random(50,150));

    if (x < 0 || x > width ||y < 0 || y > height) {
      angle += HALF_PI;
    }

    x += 3 * cos(angle);
    y += 3 * sin(angle); 
    angle += random(-0.15, 0.15);
  }
}

v2:

Result Algorithm
JO ALGO grauebruehe 2.gif
ArrayList<Brush> brushes; 

void setup() {
  size(600,600);
  background(255);
  
  colorMode(HSB);
  brushes = new ArrayList<Brush>();
  
}

void draw() {
   
  for (Brush brush : brushes) {
    brush.paint();
  }
}

void mouseClicked() {
  brushes.add(new Brush());
}

class Brush {
  float angle;
  int components[];
  float x, y;
  color clr;

  Brush() {
    angle = random(TWO_PI);
    x = mouseX;
    y = mouseY;
    clr = color(random(255), 0, random(255), 5);
    components = new int[4];
    for (int i = 0; i < 4; i++) {
      components[i] = int(random(1, 4));
    }
  }

  void paint() {
    float a = 0;
    float r = 0;
    float x1 = x;
    float y1 = y;
    float u = random(0.5, 1);
    

    fill(clr);
    noStroke();    
    
    ellipse(x, y, random(50,250), random(50,250));

    if (x < 0 || x > width ||y < 0 || y > height) {
      angle += HALF_PI;
    }

    x += 3 * cos(angle);
    y += 3 * sin(angle); 
    angle += random(-0.15, 0.15);
  }