Exposition photographique de canards

De Centre de Ressources Numériques - Labomedia
Révision de 22 mars 2014 à 00:51 par Olivier (discussion | contributions)

(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)
Aller à : navigation, rechercher

Pour XUL VI Olivier et Marie ont réalisé une exposition photographique de canard en exposant 500 photos de canards pris devant chez eux, sur le bord de la Loire.

Afin de simuler une disposition aléatoire de ces 500 photos, Olivier a écrit un sketch Processing qui va chercher chacune des vignettes pour les disposer les unes à côté des autres.

int largPh = 15;
int hautPh = 11;
int bordPh = 2;
int largReelle = 350;

int largPhTotal = largPh + bordPh;
int hautPhTotal = hautPh + bordPh;
int nbPossible = largReelle / largPhTotal;

float coef = 2;

IntList tirage = new IntList();

void setup() {

  noLoop();
  background(0);
  noStroke();
  fill(255);
  imageMode(CENTER);
  rectMode(CENTER);

  int H = 500/nbPossible * hautPhTotal;
  int L = nbPossible * largPhTotal;

  println(nbPossible);
  println("Hauteur = "+ H);
  println("Largeur = "+ L);

  size(int(L*coef+10), int(H*coef+10));

  for (int i=0; i<500; i++) {  
    tirage.append(i);
  }
  tirage.shuffle();
}

void draw() {

  for (int i=0; i<500; i++) { 

    int xPh = i%nbPossible * largPhTotal;
    int yPh = i/nbPossible * hautPhTotal;

    PImage canard = loadImage(tirage.get(i)+".jpg");

    photo(xPh, yPh, canard);
  }
}

void photo(int xx, int yy, PImage canard) {

  float posX = 10 + (xx+largPh/2)*coef;
  float posY = 10 + (yy+hautPh/2)*coef;

  rect(posX, posY, largPh*coef, hautPh*coef);
  image(canard, posX, posY, (largPh-1)*coef, (hautPh-1)*coef);
}

Voici un exemple de disposition proposée par le sketch.

Canards.jpg

Les rendus n'étant pas vraiment intéressants, ils ne s'en sont finalement pas servi pour mettre en place l'exposition.

ExpoCanards.jpg