Outils pour utilisateurs

Outils du site


wiki:projets:processing-dsaa1-2017:laura-fournier

Motifs aléatoires sauvegardés

  • Porteur(s) du projet : Laura Fournier
  • Date : Mai 2017
  • Contexte : Cours de programmation

Travail sur le dessin du motif

Pour cet exercice, j'ai cherché sur open-processing un code qui me permettait de créer et de dessiner des motifs. J'ai travaillé sur ce sujet afin de pouvoir le mettre en relation avec une partie de mon futur mémoire. Pour cela j'ai trouvé "Peintre symétrique", fait par Gábor Törőcsik-Nagy. Pour le rendre un peu plus intéressant, j'ai ajouté une fonction de sauvegarde, afin d'avoir une trace de nos fabuleux motifs! Celle ci se réalise lorsque l'on appuie sur la touche entrée. J'ai également fait de petites modifications au code de base comme par exemple changer la taille du pinceau ou changer et augmenter le nombre de couleurs.

Ce code permet de générer quatre points symétriques qui, à l'aide de la souris, dessinent des motifs aléatoires. De plus nous pouvons les enregistrer afin de les retravailler sur un autre logiciel.

Le programme proposé est inspiré d'un exemple d'OpenProcessing xxxxxxxx——–A RAJOUTER

Photos

Voici des photos de différents exemples que l'on peut faire en terme de motifs.

Code du programme

Le code

Code principal

class Painter {
 
  //attribut
  //liée à la sourisPositions et a la fluidité du trait
  float x, y;
  float easing;

  //relatif au changeur de couleurs
  color c1, c2, c3, c4, c5;
  float counter;

  // constructeur
  Painter() {
    x = 0;
    y = 0;
    counter = 0;

    // changez d'allure ici pour différents effets
    // 1   = pas de fluidité  du trait
    // .01 = fluidité extrême
    // .02 à .20 devrait fonctionner correctement
    easing = .02;

    // modifiez la couleur 3 ici qui est constamment en cycle
    // c1 est la première couleur >> alors c2 >> alors c3 >> alors c4
    c1 = #03FFEC;
    c2 = #0A5D93;
    c3 = #FA5838;
    c4 = #C7D85A;
  
}
 // pouvoir passer d'une couleur à une autre
  color colorChanger() {
    color cF1 = lerpColor(c1, c2, counter %1);
    color cF2 = lerpColor(c2, c3, counter % 1);
    color cF3 = lerpColor(c3, c4, counter % 1);
     color cF4 = lerpColor(c1, c4, counter % 1);
     color cFinal = c1;
    if (int(counter) % 3 == 0) { 
      cFinal = cF1;
    } else if (int(counter) % 3 == 1) {
      cFinal = cF2;
    } else if (int(counter) % 3 == 2) {
      cFinal = cF3;
        } else if (int(counter) % 3 == 3) {
      cFinal = cF4;
    }      
    counter += 0.005;
    return cFinal;
  }

  void paint() {
    
    // calcul  de la fluidité du trait
    float targetX = mouseX;
    x = x + (targetX - x) * easing;
    float targetY = mouseY;
    y = y + (targetY - y) * easing;
    
    // affiche les points à la position de la souris
    ellipse(x, y, d, d);
    ellipse(width-x, y, d, d);
    ellipse(x, height-y, d, d);
    ellipse(width-x, height-y, d, d);
  }

}

Code Class painter

class Painter {
 
  //attribut
  //liée à la sourisPositions et a la fluidité du trait
  float x, y;
  float easing;

  //relatif au changeur de couleurs
  color c1, c2, c3, c4, c5;
  float counter;

  // constructeur
  Painter() {
    x = 0;
    y = 0;
    counter = 0;

    // changez d'allure ici pour différents effets
    // 1   = pas de fluidité  du trait
    // .01 = fluidité extrême
    // .02 à .20 devrait fonctionner correctement
    easing = .02;

    // modifiez la couleur 3 ici qui est constamment en cycle
    // c1 est la première couleur >> alors c2 >> alors c3 >> alors c4
    c1 = #03FFEC;
    c2 = #0A5D93;
    c3 = #FA5838;
    c4 = #C7D85A;
  
}
 // pouvoir passer d'une couleur à une autre
  color colorChanger() {
    color cF1 = lerpColor(c1, c2, counter %1);
    color cF2 = lerpColor(c2, c3, counter % 1);
    color cF3 = lerpColor(c3, c4, counter % 1);
     color cF4 = lerpColor(c1, c4, counter % 1);
     color cFinal = c1;
    if (int(counter) % 3 == 0) { 
      cFinal = cF1;
    } else if (int(counter) % 3 == 1) {
      cFinal = cF2;
    } else if (int(counter) % 3 == 2) {
      cFinal = cF3;
        } else if (int(counter) % 3 == 3) {
      cFinal = cF4;
    }      
    counter += 0.005;
    return cFinal;
  }

  void paint() {
    
    // calcul  de la fluidité du trait
    float targetX = mouseX;
    x = x + (targetX - x) * easing;
    float targetY = mouseY;
    y = y + (targetY - y) * easing;
    
    // affiche les points à la position de la souris
    ellipse(x, y, d, d);
    ellipse(width-x, y, d, d);
    ellipse(x, height-y, d, d);
    ellipse(width-x, height-y, d, d);
  }

}
wiki/projets/processing-dsaa1-2017/laura-fournier.txt · Dernière modification: 2017/05/24 10:09 (modification externe)