Interactive Programming and Design als eine Möglichkeit um visuelle und interaktive Systeme zu schaffen. Diese interaktive Grafik als eine Visualisierung unserer Verletzbarkeit und wie diese uns verbindet.  Die unterschiedlichen Farben spiegeln dabei das Wesen und die unterschiedlichen Eigenschaften von uns Menschen dar, welche trotz unterschiedlichen Abständen miteinander verbunden sind. Grund dafür sind unsere sozialen Kompetenzen, ebenso wie eines der wichtigsten technischen Neuerungen in unserer heutigen Gesellschaft. Dem Internet. Im Programm Processing kann der untenstehende Code eingefügt werden, um sich die Grafik auf ihren Rechner zu holen und abzuspielen. Diese Grafik ist bei jedem starten unterschiedlich und lässt sich mithilfe Mausklicks interaktiv verändern. Die Punkte bewegen sich durch Abstoßen an den äußersten Bildschirmrändern und stoßen sich nach Auftreffen im einfallenden Auftrittswinkel wieder ab.
ArrayList<Ball> ball= new ArrayList<Ball>();
Line ballLine = new Line();
int numOFball = 10;
int s = 1;
int t = 0;
int n = 1;
int l = 255;
int m = 150;
void setup() {
  size(displayWidth, displayHeight);
  creatBall();
  frameRate(60);
}
void creatBall() {
  for (int i = 0; i < numOFball; i++) {
    ball.add(new Ball());
  }
}
void draw() {
  background(s);
  //background(s, l, m);         //Bunt
  if (t < 1) {
    s = s+1;
    //m = m+1;                   //Bunt
    //l = l-1;                   //Bunt
  }
  if (s > 254) {
    s = s-1;
    //m = m-1;                   //Bunt
    //l = l-1;                   //Bunt
    t = 1;
  }
  if (t > 0) {
    s = s-1;
    //m = m-1;                   //Bunt
    //l = l-1;                   //Bunt
  }
  if (s < 1) {
    s= s+1;
    //m = m+1;                   //Bunt
    //l = l-1;                   //Bunt
    t = 0;
  }
  for (Ball b : ball) {
    b.display();
    b.update();
  }
  ballLine.display();
}

class Ball {
  float noiseTimer;
  PVector location, speed; 
  float ballSize = 10; 
  color ballColor; 
  int speedLimit =10;
  Ball() {
    location = new PVector(random(width- ballSize), random(height- ballSize)); 
    ballColor = color(random(255), random(255), random(255));
    speed = new PVector(random(-speedLimit, speedLimit), random(-speedLimit, speedLimit));
  }
  Ball(int x, int y) {
    location = new PVector(x, y); 
    ballColor = color(random(255), random(255), random(255));
    speed = new PVector(random(-speedLimit, speedLimit), random(-speedLimit, speedLimit));
  }
  void display() {
    noStroke(); 
    fill(ballColor);
    ellipse(location.x, location.y, ballSize, ballSize);
  }
  void update() {
    location.add(speed);
    if ( XoutOFscreen()) {
      speed = new PVector(-speed.x, speed.y);
    }
    if (YoutOFscreen()) {
      speed = new PVector(speed.x, -speed.y);
    }
  }
  boolean XoutOFscreen() {
    return(location.x-ballSize/2 < 0 || location.x + ballSize/2 > width);
  }
  boolean YoutOFscreen() {
    return(location.y-ballSize/2 < 0 || location.y + ballSize/2 > height);
  }
}
class Line {
  Line() {
  }
  void display() {
    for ( int i =0; i < ball.size(); i++ ) {
      stroke(ball.get(i).ballColor, 150);
      for ( int j =i+1; j < ball.size(); j++ ) {
        line(ball.get(i).location.x, ball.get(i).location.y, ball.get(j).location.x, ball.get(j).location.y);
      }
    }
  }
}

void mousePressed() {
  if (n < 16) {
    ball.add(new Ball(mouseX, mouseY));
    n = n+1;
  }
}

You may also like

Back to Top