boucle

tutorial de programmation
en processing

vasarely
 
Victor Vasarely

L'art et l'itération

L'un des principes fondamentaux de la programmation est de simplifier des processus complexes et de raccourci le code. D'autre part, la véritable force de l'ordinateur est sa capacité d'effectuer des répétitions. Un ordinateur aujourd'hui est capable de exécuter 2 milliard de changement d'état.

OpArt (~Optical Art) l'un des avant-gardes des année 1960 a beaucoup utiliser l'iteration dans ses oeuvres afin de crée des illusion optique tel que ambiguïtés spatiales, la vibration, sensations de mouvement par la manipulation de dessins géométriques et le juxtaposition de couleurs intense. Les représentants du OpArt sont Vasarely, Soto, Riley, Agam...

Vasarely, par exemple a fait des dessins préliminaires, qui l'a appelé 'programmations' ou il a essayé d'explorer des variations de couleur, de la saturation... Au lieu d'utiliser une ordinateur, il a donné des instructions a ces assistants....

opArt

 

Littérature et référence

OpArt sur wikipédia

Algorithme itératif (en Pascale)

naum gabo
  Naum Gabo, ~1940

 

 

l'itération

L'un des outils de base sont les boucles, nous aborderons deux, le for et while. Jusqu'à présent il fallait écrire 10 lignes pour dessiner 10 lignes:

line ( 0,10,width,10);
line ( 0,20,width,20);
line ( 0,30,width,30);
line ( 0,40,width,40);
line ( 0,50,width,50);
line ( 0,60,width,60);
line ( 0,70,width,70);
line ( 0,80,width,80);
line ( 0,90,width,90);
line ( 0,100,width,100);

lines

 

Tous les deux fonctionnent de la même manière: Nous marquons le début du boucle par le mot clef for or while, ensuite nous indiquons une condition entre les parenthèses( ). Autant que la condition soit "true" le programme exécute le code dans le boucle, c'est à dire, le code entre le {}

Le boucle while

Comme une ordinateur est fait pour faire des choses stupides et répétitives, on lui dit de dessiner 10x un ligne mais chaque fois il augmente la valeur de 10px de la position y de notre ligne

int positionY=0; // je déclare une variable jusqu'avant le boucle
while (positionY<=100) { // je commence le boucle avec le mot clé while et la condition
line (0, positionY, width, positionY) ; // j'écrit mon code à répéter après les {
positionY=positionY+10; // j'augmente à chaque boucle 10 à Y
} // je ferme la bloc de commande de while.

Le boucle for

Le boucle for fonctionne quasi de la même manière.

for (int positionY=0; positionY<=100; positionY=positionY+10){
line (0, positionY, width, positionY) ;
}

La différence entre for et while est que le dernier définit la variable du boucle (dans notre cas positionY) à l'extérieur du boucle et for à l'intérieur Dans le cours précédent, nous avons appris le scoop ou la validité de la variable. Dans le cas du boucle for, la variable déclaré dans la condition est seulement valable dans le boucle. Essaie de changer la valeur de positionY en dehors du boucle.

linesTrans
  Variation du code des lignes précédent

 

Deux boucles for imbriqué

Imaginons nous voulons dessiner un jeu d'échec Pour cela nous avons besoin deux variables qui augmentent régulièrement, l'un pour x et l'autre pour y. Mais la variable pour y doit seulement augmenter une fois l'x a fait toute la ligne. Genre

( x0, y0) (x1, y0) (x2, y0)...
(( x0, y1) (x1, y1) (x2, y1)...

Pour obtenir ceci, on imbrique un boucle dans un autre:

for (int i =0; i < 10; i++){
for (int j =0; j<10; j++){
int x = i*10;
int y = j*10;
rect(x, y, 10,10);
}}

echec

 

Ce qu'il faut connaître:
 

 

Exercice

  • Programme le premier image à droite. Il ne faut qu'un seul boucle. Utilise translate() et abs() pour faciliter le travail. Le code ne fait pas plus que 8 lignes. Regarde la version interactive pour comprendre son fonctionnement. Il n a que des lignes droites!

 

 

 

  • Prenez une forme et répète le avec while or for afin de créer une image complexe. Utilise l'itération pour jouer avec sa taille, position, couleur et transparence.
  • Prend des photos autour de toi (dans la nature, la publicité, les tissu..)avec des motives itératives.

muster

forfor