Outils pour utilisateurs

Outils du site


wiki:tutoriels:formes-aleatoires:formes-aleatoires

FORMES ALÉATOIRES - processing

Créer des formes aléatoires et géométriques avec le logiciel processing KARMA

import processing.pdf.*;
import java.util.Calendar;

boolean recordPDF = false;

color col = color(143, 118, 44, 100);
float lineLength = 1;
float angle = 0;
float angleSpeed = 2.0;





void setup() {
// plein écran ( fullscreen fonctionne seulement avec processing 3, sinon il faut le remplacer par size(displayWidth, displayHeight)
  fullScreen();
  background(255);
  //ajout d'un effet lisse au formes geométriques, plus doux  
  smooth();
  //le curseur est une croix à la place de la flèche habituelle
  cursor(CROSS);
  // si vous voulez une main : cursor(HAND);
}

void draw() {
  if (mousePressed) {
    // matrice donné
    pushMatrix();
    // définit la largeur du trait
    strokeWeight(1);
    noFill();
    //donne la couleur utilisé - col > désigne color, appelé au tout début 
    stroke(col);
    translate(mouseX, mouseY);
    //rotation de l'angle de tracage - en relation avec le pushmatrix et le popmatrix - multiplie la matrice donné par pushmatrix et lui permet une rotation
    rotate(radians(angle));
    line(0, 0, lineLength, 0);
    //autres exemples : 
    //curve (10, 56, 38, 16, 93, 54, 93, 81 );
    //float radius = width/15 + noise(frameCount*20) * width/5;
    //ellipse(width/600,height/10,radius,radius);
    //s'utilise avec le pushmatrix - generatif 
    popMatrix();
    //permet d'avoir un angle constant dans le tracage, de tourner et à ce que le tracage soit toujours en mouvement 
    angle += angleSpeed;
  }
}

   void mousePressed() {
  //créer un nouvelle ligne avec une taille aléatoire entre les nombres donné
   lineLength = random(100, 300);
  
  
}



void keyReleased() {
  //touche : delete ou retour arrière, permet de néttoyer, remettre le fond blanc, gommer
  if (key == DELETE || key == BACKSPACE) background(255);
  //sauvegarde l'image
  if (key == 's' || key == 'S') saveFrame(timestamp()+"_##.png");
  

  // changer la direction de tracage, 180 = miroir
  if (key=='d' || key=='D') {
    angle = angle + 180;
    angleSpeed = angleSpeed * -1;
  }

  // couleur aléatoire avec la barre espace
  if (key == ' ') col = color(random(255), random(255), random(255), random(80, 150));

  //default colors from 1 to 4 
  if (key == '1') col = color(102, 72, 104, 100);
  if (key == '2') col = color(206, 155, 65, 100);
  if (key == '3') col = color(129, 134, 149, 100);
  if (key == '4') col = color(224, 110, 110, 100);

  //// pdf export
  //// r pour démarrer l'enregistrement psf et e pour l'arrêter
  //if (key =='r' || key =='R') {
  //  if (recordPDF == false) {
  //    beginRecord(PDF, timestamp()+".pdf");
  //    println("recording started");
  //    recordPDF = true;
  //  }
  //} else if (key == 'e' || key =='E') {
  //  if (recordPDF) {
  //    println("recording stopped");
  //    endRecord();
  //    recordPDF = false;
  //    background(255);
  //  }
 //}
}

void keyPressed() {
  //changer la longeur de la ligne ou l'angle
  if (keyCode == UP) lineLength += 5;
  if (keyCode == DOWN) lineLength -= 5; 
  if (keyCode == LEFT) angleSpeed -= 0.5;
  if (keyCode == RIGHT) angleSpeed += 0.5;
}

// timestamp
String timestamp() {
  Calendar now = Calendar.getInstance();
  return String.format("%1$ty%1$tm%1$td_%1$tH%1$tM%1$tS", now);
}

wiki/tutoriels/formes-aleatoires/formes-aleatoires.txt · Dernière modification: 2017/05/10 20:51 (modification externe)