créé ton image

porteur de projet : chloé cimetière
projet : par hasard
date : mars 2020
contexte : cours processing

Commentaire général - Damien MUTI DESGROUAS

Le plan du Wiki est parfaitement respecté. L'énoncé de la situation et des intensions sont très claires. Le fonctionnement du programme est aussi bien expliqué. Vous mettez bien le programme commenté sur le Wiki mais le fichier .zip ne contient pas l'image papa.jpeg et nécessite de la télécharger par ailleurs. Il faudrait intégrer cette photo au dossier du programme. Le programme est globalement bien commenté et est fonctionnel. On ne sais pas quel est l'apport personnel au programme. Le contrat est rempli.

1 - introduction, présentation du problème

La photographie est un sujet qui me fascine. Je fais beaucoup de photos avec mon téléphone portable, en utilisant le zoom au maximum, pour découvrir de nouvelles images. Les paysages qui nous entourent son magnifiques et on les voit tous les jours, mais on ne se penche pas assez sur ce que ces paysages peuvent nous cacher.

exemple de photographies que j'ai réalisé :
panneau.png
fenetre-ensaama.png
mtp.jpg

2 - intention

Pour ce projet à priori hasardeux, j’ai décidé de choisir des supports, pour intervenir dessus par la suite. j’ai alors pris une photographie que j’ai faite, et j’ai fait des tas d’expérimentations dessus, en sorte de créer des images à l’infini à partir d’une seule image. J'ai fait cela pour la pratique plastique, vous pouvez regarder mon travail ici : tickets - zoom.
En convertissant mon projet pour l'intégrer dans un hasard interactif, j'ai décidé de partir d'une photographie, et de la modifier pour la rendre plus ou moins lisible. L'objectif est que, par hasard, l'utilisateur va pouvoir changer l'image pour lui donner une toute autre dimension. une image contient mille autre image selon moi, plus on zoome, plus on la modifie, plus on la séquence, plus une nouvelle image apparaît. Ici, j'ai voulu faire apparaître mille images différentes, de façon aléatoire.

3 - présentation du fonctionnement du programme et de l’algorithme associé

Explication du programme : Dès que la souris passe sur un carré, le carré va se diviser en plusieurs carrés, et quand la souris va repasser sur ces carrés, ils vont être de nouveau diviser en plusieurs carrés et ainsi de suite, les carrés vont devenir de plus en plus petits, jusqu'à ce que l'image se révèle. Cela permet d'avoir, dans une seule image, mille images différentes.

4 - les sources et les liens sur les programmes dont je me suis inspirée

Programme trouvé sur openprocessing et modifié par la suite pour me l'approprier
lien du programme de base : https://www.openprocessing.org/sketch/200114

5 - programme

5 - a photo ajoutée au programme

papa.jpg

5 - b zip du programme

cree-ton-image.zip

5 - c lignes du programme

//arraylist est un stockage de variable infini, ici il stocke tous les carrés
ArrayList<square> papa = new ArrayList();
PImage img;
void setup() {
//taille de mon ecran
size(300, 300);
//ajout d'une image
img = loadImage("papa.jpg");
// get permet de lire la couleur qui se trouve sur l'image, pour que le carré se tranforme en un carré de la même couleur que la zone de l'image
// plus les width et height sont petits, plus les carrés seront plus petits de plus en plus vite
// donc je divise pas width et height car je veux ques les carrés deviennent plus petits de façon progressive et pas d'un coup
color cc = get(width, height);
cc = color(cc, 80);
//signifie la zone dans laquelle va s'inscrire les carrés
//ici, j'ai mis la zone entière des 300x300
square c = new square(width, height, width, cc );
//active l'ajout des carrés dans la zone
papa.add(c);
}
int k=0;
void draw() {
//j'ai pas trop compris cette partie, je crois que ca veut dire que k = les carrés, et si les carrés sont en dessous de 1, l'image apparait enfin
background(1);
if (k<1) image(img, 0, 0);
for (int i=0; i<papa.size (); i++) {
square C = papa.get(i);
C.show();
}
for (int i=0; i<papa.size (); i++) {
square C = papa.get(i);
if (dist(mouseX, mouseY, C.x, C.y)<C.r) {
//mettre k=0 permet d'intervenir directement sur la photo pour faire apparaitre des carrés de plus en plus petit à force d'interagir
//k=1 permet d'effacer l'image entièrement pour faire place aux carrés, qui cachent l'image qui se trouve en dessous
k =0;
papa.remove(i);
for (int kx=0; kx<2; kx++) {
for (int ky=0; ky<2; ky++) {
//des que la souris survole un carré, il se multiplie encore plus jusqu'à devenir l'image
color c = img.get(int(pow(-1, kx)*C.r/2+C.x), int(pow(-1, ky)*C.r/2+C.y));
square C1 = new square(pow(-1, kx)*C.r/2+C.x, pow(-1, ky)*C.r/2+C.y, C.r/2, c);
papa.add(C1);
}
}
}
}
}
//définit les carrés survolés
class square {
float x, y, r;
color c;
square(float x, float y, float r, color c) {
this.x = x;
this.y = y;
this.r = r;
this.c = c;
}
void show() {
noStroke();
fill(c);
//4*r pour que les carrés soient gros des le début du survol de l'image
square(x, y, 4*r);
}
}

visualisation du projet :